timestamp.out 88 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081
  1. --
  2. -- TIMESTAMP
  3. --
  4. CREATE TABLE TIMESTAMP_TBL (d1 timestamp(2) without time zone);
  5. -- Test shorthand input values
  6. -- We can't just "select" the results since they aren't constants; test for
  7. -- equality instead. We can do that by running the test inside a transaction
  8. -- block, within which the value of 'now' shouldn't change, and so these
  9. -- related values shouldn't either.
  10. BEGIN;
  11. INSERT INTO TIMESTAMP_TBL VALUES ('today');
  12. INSERT INTO TIMESTAMP_TBL VALUES ('yesterday');
  13. INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow');
  14. -- time zone should be ignored by this data type
  15. INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow EST');
  16. INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow zulu');
  17. SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'today';
  18. one
  19. -----
  20. 1
  21. (1 row)
  22. SELECT count(*) AS Three FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'tomorrow';
  23. three
  24. -------
  25. 3
  26. (1 row)
  27. SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'yesterday';
  28. one
  29. -----
  30. 1
  31. (1 row)
  32. COMMIT;
  33. DELETE FROM TIMESTAMP_TBL;
  34. -- Verify that 'now' *does* change over a reasonable interval such as 100 msec,
  35. -- and that it doesn't change over the same interval within a transaction block
  36. INSERT INTO TIMESTAMP_TBL VALUES ('now');
  37. SELECT pg_sleep(0.1);
  38. pg_sleep
  39. ----------
  40. (1 row)
  41. BEGIN;
  42. INSERT INTO TIMESTAMP_TBL VALUES ('now');
  43. SELECT pg_sleep(0.1);
  44. pg_sleep
  45. ----------
  46. (1 row)
  47. INSERT INTO TIMESTAMP_TBL VALUES ('now');
  48. SELECT pg_sleep(0.1);
  49. pg_sleep
  50. ----------
  51. (1 row)
  52. SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp(2) without time zone 'now';
  53. two
  54. -----
  55. 2
  56. (1 row)
  57. SELECT count(d1) AS three, count(DISTINCT d1) AS two FROM TIMESTAMP_TBL;
  58. three | two
  59. -------+-----
  60. 3 | 2
  61. (1 row)
  62. COMMIT;
  63. TRUNCATE TIMESTAMP_TBL;
  64. -- Special values
  65. INSERT INTO TIMESTAMP_TBL VALUES ('-infinity');
  66. INSERT INTO TIMESTAMP_TBL VALUES ('infinity');
  67. INSERT INTO TIMESTAMP_TBL VALUES ('epoch');
  68. -- Postgres v6.0 standard output format
  69. INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
  70. -- Variations on Postgres v6.1 standard output format
  71. INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST');
  72. INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST');
  73. INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.4 1997 PST');
  74. INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.5 1997 PST');
  75. INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.6 1997 PST');
  76. -- ISO 8601 format
  77. INSERT INTO TIMESTAMP_TBL VALUES ('1997-01-02');
  78. INSERT INTO TIMESTAMP_TBL VALUES ('1997-01-02 03:04:05');
  79. INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-08');
  80. INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-0800');
  81. INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 -08:00');
  82. INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 -0800');
  83. INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 17:32:01 -07:00');
  84. INSERT INTO TIMESTAMP_TBL VALUES ('2001-09-22T18:19:20');
  85. -- POSIX format (note that the timezone abbrev is just decoration here)
  86. INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 08:14:01 GMT+8');
  87. INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 13:14:02 GMT-1');
  88. INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 12:14:03 GMT-2');
  89. INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 03:14:04 PST+8');
  90. INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 02:14:05 MST+7:00');
  91. -- Variations for acceptable input formats
  92. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 17:32:01 1997 -0800');
  93. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 17:32:01 1997');
  94. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 5:32PM 1997');
  95. INSERT INTO TIMESTAMP_TBL VALUES ('1997/02/10 17:32:01-0800');
  96. INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 PST');
  97. INSERT INTO TIMESTAMP_TBL VALUES ('Feb-10-1997 17:32:01 PST');
  98. INSERT INTO TIMESTAMP_TBL VALUES ('02-10-1997 17:32:01 PST');
  99. INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 PST');
  100. set datestyle to ymd;
  101. INSERT INTO TIMESTAMP_TBL VALUES ('97FEB10 5:32:01PM UTC');
  102. INSERT INTO TIMESTAMP_TBL VALUES ('97/02/10 17:32:01 UTC');
  103. reset datestyle;
  104. INSERT INTO TIMESTAMP_TBL VALUES ('1997.041 17:32:01 UTC');
  105. INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 America/New_York');
  106. -- this fails (even though TZ is a no-op, we still look it up)
  107. INSERT INTO TIMESTAMP_TBL VALUES ('19970710 173201 America/Does_not_exist');
  108. ERROR: time zone "america/does_not_exist" not recognized
  109. LINE 1: INSERT INTO TIMESTAMP_TBL VALUES ('19970710 173201 America/D...
  110. ^
  111. -- Check date conversion and date arithmetic
  112. INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 18:32:01 PDT');
  113. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 17:32:01 1997');
  114. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 11 17:32:01 1997');
  115. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 12 17:32:01 1997');
  116. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 13 17:32:01 1997');
  117. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 14 17:32:01 1997');
  118. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 15 17:32:01 1997');
  119. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1997');
  120. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 0097 BC');
  121. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 0097');
  122. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 0597');
  123. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1097');
  124. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1697');
  125. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1797');
  126. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1897');
  127. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1997');
  128. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 2097');
  129. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 28 17:32:01 1996');
  130. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 29 17:32:01 1996');
  131. INSERT INTO TIMESTAMP_TBL VALUES ('Mar 01 17:32:01 1996');
  132. INSERT INTO TIMESTAMP_TBL VALUES ('Dec 30 17:32:01 1996');
  133. INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1996');
  134. INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 1997');
  135. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 28 17:32:01 1997');
  136. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 29 17:32:01 1997');
  137. ERROR: date/time field value out of range: "Feb 29 17:32:01 1997"
  138. LINE 1: INSERT INTO TIMESTAMP_TBL VALUES ('Feb 29 17:32:01 1997');
  139. ^
  140. INSERT INTO TIMESTAMP_TBL VALUES ('Mar 01 17:32:01 1997');
  141. INSERT INTO TIMESTAMP_TBL VALUES ('Dec 30 17:32:01 1997');
  142. INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1997');
  143. INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1999');
  144. INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 2000');
  145. INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 2000');
  146. INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 2001');
  147. -- Currently unsupported syntax and ranges
  148. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097');
  149. ERROR: time zone displacement out of range: "Feb 16 17:32:01 -0097"
  150. LINE 1: INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097');
  151. ^
  152. INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC');
  153. ERROR: timestamp out of range: "Feb 16 17:32:01 5097 BC"
  154. LINE 1: INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC')...
  155. ^
  156. SELECT d1 FROM TIMESTAMP_TBL;
  157. d1
  158. -----------------------------
  159. -infinity
  160. infinity
  161. Thu Jan 01 00:00:00 1970
  162. Mon Feb 10 17:32:01 1997
  163. Mon Feb 10 17:32:01 1997
  164. Mon Feb 10 17:32:02 1997
  165. Mon Feb 10 17:32:01.4 1997
  166. Mon Feb 10 17:32:01.5 1997
  167. Mon Feb 10 17:32:01.6 1997
  168. Thu Jan 02 00:00:00 1997
  169. Thu Jan 02 03:04:05 1997
  170. Mon Feb 10 17:32:01 1997
  171. Mon Feb 10 17:32:01 1997
  172. Mon Feb 10 17:32:01 1997
  173. Mon Feb 10 17:32:01 1997
  174. Tue Jun 10 17:32:01 1997
  175. Sat Sep 22 18:19:20 2001
  176. Wed Mar 15 08:14:01 2000
  177. Wed Mar 15 13:14:02 2000
  178. Wed Mar 15 12:14:03 2000
  179. Wed Mar 15 03:14:04 2000
  180. Wed Mar 15 02:14:05 2000
  181. Mon Feb 10 17:32:01 1997
  182. Mon Feb 10 17:32:01 1997
  183. Mon Feb 10 17:32:00 1997
  184. Mon Feb 10 17:32:01 1997
  185. Mon Feb 10 17:32:01 1997
  186. Mon Feb 10 17:32:01 1997
  187. Mon Feb 10 17:32:01 1997
  188. Mon Feb 10 17:32:01 1997
  189. Mon Feb 10 17:32:01 1997
  190. Mon Feb 10 17:32:01 1997
  191. Mon Feb 10 17:32:01 1997
  192. Mon Feb 10 17:32:01 1997
  193. Tue Jun 10 18:32:01 1997
  194. Mon Feb 10 17:32:01 1997
  195. Tue Feb 11 17:32:01 1997
  196. Wed Feb 12 17:32:01 1997
  197. Thu Feb 13 17:32:01 1997
  198. Fri Feb 14 17:32:01 1997
  199. Sat Feb 15 17:32:01 1997
  200. Sun Feb 16 17:32:01 1997
  201. Tue Feb 16 17:32:01 0097 BC
  202. Sat Feb 16 17:32:01 0097
  203. Thu Feb 16 17:32:01 0597
  204. Tue Feb 16 17:32:01 1097
  205. Sat Feb 16 17:32:01 1697
  206. Thu Feb 16 17:32:01 1797
  207. Tue Feb 16 17:32:01 1897
  208. Sun Feb 16 17:32:01 1997
  209. Sat Feb 16 17:32:01 2097
  210. Wed Feb 28 17:32:01 1996
  211. Thu Feb 29 17:32:01 1996
  212. Fri Mar 01 17:32:01 1996
  213. Mon Dec 30 17:32:01 1996
  214. Tue Dec 31 17:32:01 1996
  215. Wed Jan 01 17:32:01 1997
  216. Fri Feb 28 17:32:01 1997
  217. Sat Mar 01 17:32:01 1997
  218. Tue Dec 30 17:32:01 1997
  219. Wed Dec 31 17:32:01 1997
  220. Fri Dec 31 17:32:01 1999
  221. Sat Jan 01 17:32:01 2000
  222. Sun Dec 31 17:32:01 2000
  223. Mon Jan 01 17:32:01 2001
  224. (65 rows)
  225. -- Check behavior at the boundaries of the timestamp range
  226. SELECT '4714-11-24 00:00:00 BC'::timestamp;
  227. timestamp
  228. -----------------------------
  229. Mon Nov 24 00:00:00 4714 BC
  230. (1 row)
  231. SELECT '4714-11-23 23:59:59 BC'::timestamp; -- out of range
  232. ERROR: timestamp out of range: "4714-11-23 23:59:59 BC"
  233. LINE 1: SELECT '4714-11-23 23:59:59 BC'::timestamp;
  234. ^
  235. SELECT '294276-12-31 23:59:59'::timestamp;
  236. timestamp
  237. ----------------------------
  238. Sun Dec 31 23:59:59 294276
  239. (1 row)
  240. SELECT '294277-01-01 00:00:00'::timestamp; -- out of range
  241. ERROR: timestamp out of range: "294277-01-01 00:00:00"
  242. LINE 1: SELECT '294277-01-01 00:00:00'::timestamp;
  243. ^
  244. -- Demonstrate functions and operators
  245. SELECT d1 FROM TIMESTAMP_TBL
  246. WHERE d1 > timestamp without time zone '1997-01-02';
  247. d1
  248. ----------------------------
  249. infinity
  250. Mon Feb 10 17:32:01 1997
  251. Mon Feb 10 17:32:01 1997
  252. Mon Feb 10 17:32:02 1997
  253. Mon Feb 10 17:32:01.4 1997
  254. Mon Feb 10 17:32:01.5 1997
  255. Mon Feb 10 17:32:01.6 1997
  256. Thu Jan 02 03:04:05 1997
  257. Mon Feb 10 17:32:01 1997
  258. Mon Feb 10 17:32:01 1997
  259. Mon Feb 10 17:32:01 1997
  260. Mon Feb 10 17:32:01 1997
  261. Tue Jun 10 17:32:01 1997
  262. Sat Sep 22 18:19:20 2001
  263. Wed Mar 15 08:14:01 2000
  264. Wed Mar 15 13:14:02 2000
  265. Wed Mar 15 12:14:03 2000
  266. Wed Mar 15 03:14:04 2000
  267. Wed Mar 15 02:14:05 2000
  268. Mon Feb 10 17:32:01 1997
  269. Mon Feb 10 17:32:01 1997
  270. Mon Feb 10 17:32:00 1997
  271. Mon Feb 10 17:32:01 1997
  272. Mon Feb 10 17:32:01 1997
  273. Mon Feb 10 17:32:01 1997
  274. Mon Feb 10 17:32:01 1997
  275. Mon Feb 10 17:32:01 1997
  276. Mon Feb 10 17:32:01 1997
  277. Mon Feb 10 17:32:01 1997
  278. Mon Feb 10 17:32:01 1997
  279. Mon Feb 10 17:32:01 1997
  280. Tue Jun 10 18:32:01 1997
  281. Mon Feb 10 17:32:01 1997
  282. Tue Feb 11 17:32:01 1997
  283. Wed Feb 12 17:32:01 1997
  284. Thu Feb 13 17:32:01 1997
  285. Fri Feb 14 17:32:01 1997
  286. Sat Feb 15 17:32:01 1997
  287. Sun Feb 16 17:32:01 1997
  288. Sun Feb 16 17:32:01 1997
  289. Sat Feb 16 17:32:01 2097
  290. Fri Feb 28 17:32:01 1997
  291. Sat Mar 01 17:32:01 1997
  292. Tue Dec 30 17:32:01 1997
  293. Wed Dec 31 17:32:01 1997
  294. Fri Dec 31 17:32:01 1999
  295. Sat Jan 01 17:32:01 2000
  296. Sun Dec 31 17:32:01 2000
  297. Mon Jan 01 17:32:01 2001
  298. (49 rows)
  299. SELECT d1 FROM TIMESTAMP_TBL
  300. WHERE d1 < timestamp without time zone '1997-01-02';
  301. d1
  302. -----------------------------
  303. -infinity
  304. Thu Jan 01 00:00:00 1970
  305. Tue Feb 16 17:32:01 0097 BC
  306. Sat Feb 16 17:32:01 0097
  307. Thu Feb 16 17:32:01 0597
  308. Tue Feb 16 17:32:01 1097
  309. Sat Feb 16 17:32:01 1697
  310. Thu Feb 16 17:32:01 1797
  311. Tue Feb 16 17:32:01 1897
  312. Wed Feb 28 17:32:01 1996
  313. Thu Feb 29 17:32:01 1996
  314. Fri Mar 01 17:32:01 1996
  315. Mon Dec 30 17:32:01 1996
  316. Tue Dec 31 17:32:01 1996
  317. Wed Jan 01 17:32:01 1997
  318. (15 rows)
  319. SELECT d1 FROM TIMESTAMP_TBL
  320. WHERE d1 = timestamp without time zone '1997-01-02';
  321. d1
  322. --------------------------
  323. Thu Jan 02 00:00:00 1997
  324. (1 row)
  325. SELECT d1 FROM TIMESTAMP_TBL
  326. WHERE d1 != timestamp without time zone '1997-01-02';
  327. d1
  328. -----------------------------
  329. -infinity
  330. infinity
  331. Thu Jan 01 00:00:00 1970
  332. Mon Feb 10 17:32:01 1997
  333. Mon Feb 10 17:32:01 1997
  334. Mon Feb 10 17:32:02 1997
  335. Mon Feb 10 17:32:01.4 1997
  336. Mon Feb 10 17:32:01.5 1997
  337. Mon Feb 10 17:32:01.6 1997
  338. Thu Jan 02 03:04:05 1997
  339. Mon Feb 10 17:32:01 1997
  340. Mon Feb 10 17:32:01 1997
  341. Mon Feb 10 17:32:01 1997
  342. Mon Feb 10 17:32:01 1997
  343. Tue Jun 10 17:32:01 1997
  344. Sat Sep 22 18:19:20 2001
  345. Wed Mar 15 08:14:01 2000
  346. Wed Mar 15 13:14:02 2000
  347. Wed Mar 15 12:14:03 2000
  348. Wed Mar 15 03:14:04 2000
  349. Wed Mar 15 02:14:05 2000
  350. Mon Feb 10 17:32:01 1997
  351. Mon Feb 10 17:32:01 1997
  352. Mon Feb 10 17:32:00 1997
  353. Mon Feb 10 17:32:01 1997
  354. Mon Feb 10 17:32:01 1997
  355. Mon Feb 10 17:32:01 1997
  356. Mon Feb 10 17:32:01 1997
  357. Mon Feb 10 17:32:01 1997
  358. Mon Feb 10 17:32:01 1997
  359. Mon Feb 10 17:32:01 1997
  360. Mon Feb 10 17:32:01 1997
  361. Mon Feb 10 17:32:01 1997
  362. Tue Jun 10 18:32:01 1997
  363. Mon Feb 10 17:32:01 1997
  364. Tue Feb 11 17:32:01 1997
  365. Wed Feb 12 17:32:01 1997
  366. Thu Feb 13 17:32:01 1997
  367. Fri Feb 14 17:32:01 1997
  368. Sat Feb 15 17:32:01 1997
  369. Sun Feb 16 17:32:01 1997
  370. Tue Feb 16 17:32:01 0097 BC
  371. Sat Feb 16 17:32:01 0097
  372. Thu Feb 16 17:32:01 0597
  373. Tue Feb 16 17:32:01 1097
  374. Sat Feb 16 17:32:01 1697
  375. Thu Feb 16 17:32:01 1797
  376. Tue Feb 16 17:32:01 1897
  377. Sun Feb 16 17:32:01 1997
  378. Sat Feb 16 17:32:01 2097
  379. Wed Feb 28 17:32:01 1996
  380. Thu Feb 29 17:32:01 1996
  381. Fri Mar 01 17:32:01 1996
  382. Mon Dec 30 17:32:01 1996
  383. Tue Dec 31 17:32:01 1996
  384. Wed Jan 01 17:32:01 1997
  385. Fri Feb 28 17:32:01 1997
  386. Sat Mar 01 17:32:01 1997
  387. Tue Dec 30 17:32:01 1997
  388. Wed Dec 31 17:32:01 1997
  389. Fri Dec 31 17:32:01 1999
  390. Sat Jan 01 17:32:01 2000
  391. Sun Dec 31 17:32:01 2000
  392. Mon Jan 01 17:32:01 2001
  393. (64 rows)
  394. SELECT d1 FROM TIMESTAMP_TBL
  395. WHERE d1 <= timestamp without time zone '1997-01-02';
  396. d1
  397. -----------------------------
  398. -infinity
  399. Thu Jan 01 00:00:00 1970
  400. Thu Jan 02 00:00:00 1997
  401. Tue Feb 16 17:32:01 0097 BC
  402. Sat Feb 16 17:32:01 0097
  403. Thu Feb 16 17:32:01 0597
  404. Tue Feb 16 17:32:01 1097
  405. Sat Feb 16 17:32:01 1697
  406. Thu Feb 16 17:32:01 1797
  407. Tue Feb 16 17:32:01 1897
  408. Wed Feb 28 17:32:01 1996
  409. Thu Feb 29 17:32:01 1996
  410. Fri Mar 01 17:32:01 1996
  411. Mon Dec 30 17:32:01 1996
  412. Tue Dec 31 17:32:01 1996
  413. Wed Jan 01 17:32:01 1997
  414. (16 rows)
  415. SELECT d1 FROM TIMESTAMP_TBL
  416. WHERE d1 >= timestamp without time zone '1997-01-02';
  417. d1
  418. ----------------------------
  419. infinity
  420. Mon Feb 10 17:32:01 1997
  421. Mon Feb 10 17:32:01 1997
  422. Mon Feb 10 17:32:02 1997
  423. Mon Feb 10 17:32:01.4 1997
  424. Mon Feb 10 17:32:01.5 1997
  425. Mon Feb 10 17:32:01.6 1997
  426. Thu Jan 02 00:00:00 1997
  427. Thu Jan 02 03:04:05 1997
  428. Mon Feb 10 17:32:01 1997
  429. Mon Feb 10 17:32:01 1997
  430. Mon Feb 10 17:32:01 1997
  431. Mon Feb 10 17:32:01 1997
  432. Tue Jun 10 17:32:01 1997
  433. Sat Sep 22 18:19:20 2001
  434. Wed Mar 15 08:14:01 2000
  435. Wed Mar 15 13:14:02 2000
  436. Wed Mar 15 12:14:03 2000
  437. Wed Mar 15 03:14:04 2000
  438. Wed Mar 15 02:14:05 2000
  439. Mon Feb 10 17:32:01 1997
  440. Mon Feb 10 17:32:01 1997
  441. Mon Feb 10 17:32:00 1997
  442. Mon Feb 10 17:32:01 1997
  443. Mon Feb 10 17:32:01 1997
  444. Mon Feb 10 17:32:01 1997
  445. Mon Feb 10 17:32:01 1997
  446. Mon Feb 10 17:32:01 1997
  447. Mon Feb 10 17:32:01 1997
  448. Mon Feb 10 17:32:01 1997
  449. Mon Feb 10 17:32:01 1997
  450. Mon Feb 10 17:32:01 1997
  451. Tue Jun 10 18:32:01 1997
  452. Mon Feb 10 17:32:01 1997
  453. Tue Feb 11 17:32:01 1997
  454. Wed Feb 12 17:32:01 1997
  455. Thu Feb 13 17:32:01 1997
  456. Fri Feb 14 17:32:01 1997
  457. Sat Feb 15 17:32:01 1997
  458. Sun Feb 16 17:32:01 1997
  459. Sun Feb 16 17:32:01 1997
  460. Sat Feb 16 17:32:01 2097
  461. Fri Feb 28 17:32:01 1997
  462. Sat Mar 01 17:32:01 1997
  463. Tue Dec 30 17:32:01 1997
  464. Wed Dec 31 17:32:01 1997
  465. Fri Dec 31 17:32:01 1999
  466. Sat Jan 01 17:32:01 2000
  467. Sun Dec 31 17:32:01 2000
  468. Mon Jan 01 17:32:01 2001
  469. (50 rows)
  470. SELECT d1 - timestamp without time zone '1997-01-02' AS diff
  471. FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
  472. diff
  473. ----------------------------------------
  474. @ 9863 days ago
  475. @ 39 days 17 hours 32 mins 1 sec
  476. @ 39 days 17 hours 32 mins 1 sec
  477. @ 39 days 17 hours 32 mins 2 secs
  478. @ 39 days 17 hours 32 mins 1.4 secs
  479. @ 39 days 17 hours 32 mins 1.5 secs
  480. @ 39 days 17 hours 32 mins 1.6 secs
  481. @ 0
  482. @ 3 hours 4 mins 5 secs
  483. @ 39 days 17 hours 32 mins 1 sec
  484. @ 39 days 17 hours 32 mins 1 sec
  485. @ 39 days 17 hours 32 mins 1 sec
  486. @ 39 days 17 hours 32 mins 1 sec
  487. @ 159 days 17 hours 32 mins 1 sec
  488. @ 1724 days 18 hours 19 mins 20 secs
  489. @ 1168 days 8 hours 14 mins 1 sec
  490. @ 1168 days 13 hours 14 mins 2 secs
  491. @ 1168 days 12 hours 14 mins 3 secs
  492. @ 1168 days 3 hours 14 mins 4 secs
  493. @ 1168 days 2 hours 14 mins 5 secs
  494. @ 39 days 17 hours 32 mins 1 sec
  495. @ 39 days 17 hours 32 mins 1 sec
  496. @ 39 days 17 hours 32 mins
  497. @ 39 days 17 hours 32 mins 1 sec
  498. @ 39 days 17 hours 32 mins 1 sec
  499. @ 39 days 17 hours 32 mins 1 sec
  500. @ 39 days 17 hours 32 mins 1 sec
  501. @ 39 days 17 hours 32 mins 1 sec
  502. @ 39 days 17 hours 32 mins 1 sec
  503. @ 39 days 17 hours 32 mins 1 sec
  504. @ 39 days 17 hours 32 mins 1 sec
  505. @ 39 days 17 hours 32 mins 1 sec
  506. @ 159 days 18 hours 32 mins 1 sec
  507. @ 39 days 17 hours 32 mins 1 sec
  508. @ 40 days 17 hours 32 mins 1 sec
  509. @ 41 days 17 hours 32 mins 1 sec
  510. @ 42 days 17 hours 32 mins 1 sec
  511. @ 43 days 17 hours 32 mins 1 sec
  512. @ 44 days 17 hours 32 mins 1 sec
  513. @ 45 days 17 hours 32 mins 1 sec
  514. @ 45 days 17 hours 32 mins 1 sec
  515. @ 308 days 6 hours 27 mins 59 secs ago
  516. @ 307 days 6 hours 27 mins 59 secs ago
  517. @ 306 days 6 hours 27 mins 59 secs ago
  518. @ 2 days 6 hours 27 mins 59 secs ago
  519. @ 1 day 6 hours 27 mins 59 secs ago
  520. @ 6 hours 27 mins 59 secs ago
  521. @ 57 days 17 hours 32 mins 1 sec
  522. @ 58 days 17 hours 32 mins 1 sec
  523. @ 362 days 17 hours 32 mins 1 sec
  524. @ 363 days 17 hours 32 mins 1 sec
  525. @ 1093 days 17 hours 32 mins 1 sec
  526. @ 1094 days 17 hours 32 mins 1 sec
  527. @ 1459 days 17 hours 32 mins 1 sec
  528. @ 1460 days 17 hours 32 mins 1 sec
  529. (55 rows)
  530. SELECT date_trunc( 'week', timestamp '2004-02-29 15:44:17.71393' ) AS week_trunc;
  531. week_trunc
  532. --------------------------
  533. Mon Feb 23 00:00:00 2004
  534. (1 row)
  535. -- verify date_bin behaves the same as date_trunc for relevant intervals
  536. -- case 1: AD dates, origin < input
  537. SELECT
  538. str,
  539. interval,
  540. date_trunc(str, ts) = date_bin(interval::interval, ts, timestamp '2001-01-01') AS equal
  541. FROM (
  542. VALUES
  543. ('week', '7 d'),
  544. ('day', '1 d'),
  545. ('hour', '1 h'),
  546. ('minute', '1 m'),
  547. ('second', '1 s'),
  548. ('millisecond', '1 ms'),
  549. ('microsecond', '1 us')
  550. ) intervals (str, interval),
  551. (VALUES (timestamp '2020-02-29 15:44:17.71393')) ts (ts);
  552. str | interval | equal
  553. -------------+----------+-------
  554. week | 7 d | t
  555. day | 1 d | t
  556. hour | 1 h | t
  557. minute | 1 m | t
  558. second | 1 s | t
  559. millisecond | 1 ms | t
  560. microsecond | 1 us | t
  561. (7 rows)
  562. -- case 2: BC dates, origin < input
  563. SELECT
  564. str,
  565. interval,
  566. date_trunc(str, ts) = date_bin(interval::interval, ts, timestamp '2000-01-01 BC') AS equal
  567. FROM (
  568. VALUES
  569. ('week', '7 d'),
  570. ('day', '1 d'),
  571. ('hour', '1 h'),
  572. ('minute', '1 m'),
  573. ('second', '1 s'),
  574. ('millisecond', '1 ms'),
  575. ('microsecond', '1 us')
  576. ) intervals (str, interval),
  577. (VALUES (timestamp '0055-6-10 15:44:17.71393 BC')) ts (ts);
  578. str | interval | equal
  579. -------------+----------+-------
  580. week | 7 d | t
  581. day | 1 d | t
  582. hour | 1 h | t
  583. minute | 1 m | t
  584. second | 1 s | t
  585. millisecond | 1 ms | t
  586. microsecond | 1 us | t
  587. (7 rows)
  588. -- case 3: AD dates, origin > input
  589. SELECT
  590. str,
  591. interval,
  592. date_trunc(str, ts) = date_bin(interval::interval, ts, timestamp '2020-03-02') AS equal
  593. FROM (
  594. VALUES
  595. ('week', '7 d'),
  596. ('day', '1 d'),
  597. ('hour', '1 h'),
  598. ('minute', '1 m'),
  599. ('second', '1 s'),
  600. ('millisecond', '1 ms'),
  601. ('microsecond', '1 us')
  602. ) intervals (str, interval),
  603. (VALUES (timestamp '2020-02-29 15:44:17.71393')) ts (ts);
  604. str | interval | equal
  605. -------------+----------+-------
  606. week | 7 d | t
  607. day | 1 d | t
  608. hour | 1 h | t
  609. minute | 1 m | t
  610. second | 1 s | t
  611. millisecond | 1 ms | t
  612. microsecond | 1 us | t
  613. (7 rows)
  614. -- case 4: BC dates, origin > input
  615. SELECT
  616. str,
  617. interval,
  618. date_trunc(str, ts) = date_bin(interval::interval, ts, timestamp '0055-06-17 BC') AS equal
  619. FROM (
  620. VALUES
  621. ('week', '7 d'),
  622. ('day', '1 d'),
  623. ('hour', '1 h'),
  624. ('minute', '1 m'),
  625. ('second', '1 s'),
  626. ('millisecond', '1 ms'),
  627. ('microsecond', '1 us')
  628. ) intervals (str, interval),
  629. (VALUES (timestamp '0055-6-10 15:44:17.71393 BC')) ts (ts);
  630. str | interval | equal
  631. -------------+----------+-------
  632. week | 7 d | t
  633. day | 1 d | t
  634. hour | 1 h | t
  635. minute | 1 m | t
  636. second | 1 s | t
  637. millisecond | 1 ms | t
  638. microsecond | 1 us | t
  639. (7 rows)
  640. -- bin timestamps into arbitrary intervals
  641. SELECT
  642. interval,
  643. ts,
  644. origin,
  645. date_bin(interval::interval, ts, origin)
  646. FROM (
  647. VALUES
  648. ('15 days'),
  649. ('2 hours'),
  650. ('1 hour 30 minutes'),
  651. ('15 minutes'),
  652. ('10 seconds'),
  653. ('100 milliseconds'),
  654. ('250 microseconds')
  655. ) intervals (interval),
  656. (VALUES (timestamp '2020-02-11 15:44:17.71393')) ts (ts),
  657. (VALUES (timestamp '2001-01-01')) origin (origin);
  658. interval | ts | origin | date_bin
  659. -------------------+--------------------------------+--------------------------+--------------------------------
  660. 15 days | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Thu Feb 06 00:00:00 2020
  661. 2 hours | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 14:00:00 2020
  662. 1 hour 30 minutes | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:00:00 2020
  663. 15 minutes | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:30:00 2020
  664. 10 seconds | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:44:10 2020
  665. 100 milliseconds | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:44:17.7 2020
  666. 250 microseconds | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:44:17.71375 2020
  667. (7 rows)
  668. -- shift bins using the origin parameter:
  669. SELECT date_bin('5 min'::interval, timestamp '2020-02-01 01:01:01', timestamp '2020-02-01 00:02:30');
  670. date_bin
  671. --------------------------
  672. Sat Feb 01 00:57:30 2020
  673. (1 row)
  674. -- disallow intervals with months or years
  675. SELECT date_bin('5 months'::interval, timestamp '2020-02-01 01:01:01', timestamp '2001-01-01');
  676. ERROR: timestamps cannot be binned into intervals containing months or years
  677. SELECT date_bin('5 years'::interval, timestamp '2020-02-01 01:01:01', timestamp '2001-01-01');
  678. ERROR: timestamps cannot be binned into intervals containing months or years
  679. -- disallow zero intervals
  680. SELECT date_bin('0 days'::interval, timestamp '1970-01-01 01:00:00' , timestamp '1970-01-01 00:00:00');
  681. ERROR: stride must be greater than zero
  682. -- disallow negative intervals
  683. SELECT date_bin('-2 days'::interval, timestamp '1970-01-01 01:00:00' , timestamp '1970-01-01 00:00:00');
  684. ERROR: stride must be greater than zero
  685. -- Test casting within a BETWEEN qualifier
  686. SELECT d1 - timestamp without time zone '1997-01-02' AS diff
  687. FROM TIMESTAMP_TBL
  688. WHERE d1 BETWEEN timestamp without time zone '1902-01-01'
  689. AND timestamp without time zone '2038-01-01';
  690. diff
  691. ----------------------------------------
  692. @ 9863 days ago
  693. @ 39 days 17 hours 32 mins 1 sec
  694. @ 39 days 17 hours 32 mins 1 sec
  695. @ 39 days 17 hours 32 mins 2 secs
  696. @ 39 days 17 hours 32 mins 1.4 secs
  697. @ 39 days 17 hours 32 mins 1.5 secs
  698. @ 39 days 17 hours 32 mins 1.6 secs
  699. @ 0
  700. @ 3 hours 4 mins 5 secs
  701. @ 39 days 17 hours 32 mins 1 sec
  702. @ 39 days 17 hours 32 mins 1 sec
  703. @ 39 days 17 hours 32 mins 1 sec
  704. @ 39 days 17 hours 32 mins 1 sec
  705. @ 159 days 17 hours 32 mins 1 sec
  706. @ 1724 days 18 hours 19 mins 20 secs
  707. @ 1168 days 8 hours 14 mins 1 sec
  708. @ 1168 days 13 hours 14 mins 2 secs
  709. @ 1168 days 12 hours 14 mins 3 secs
  710. @ 1168 days 3 hours 14 mins 4 secs
  711. @ 1168 days 2 hours 14 mins 5 secs
  712. @ 39 days 17 hours 32 mins 1 sec
  713. @ 39 days 17 hours 32 mins 1 sec
  714. @ 39 days 17 hours 32 mins
  715. @ 39 days 17 hours 32 mins 1 sec
  716. @ 39 days 17 hours 32 mins 1 sec
  717. @ 39 days 17 hours 32 mins 1 sec
  718. @ 39 days 17 hours 32 mins 1 sec
  719. @ 39 days 17 hours 32 mins 1 sec
  720. @ 39 days 17 hours 32 mins 1 sec
  721. @ 39 days 17 hours 32 mins 1 sec
  722. @ 39 days 17 hours 32 mins 1 sec
  723. @ 39 days 17 hours 32 mins 1 sec
  724. @ 159 days 18 hours 32 mins 1 sec
  725. @ 39 days 17 hours 32 mins 1 sec
  726. @ 40 days 17 hours 32 mins 1 sec
  727. @ 41 days 17 hours 32 mins 1 sec
  728. @ 42 days 17 hours 32 mins 1 sec
  729. @ 43 days 17 hours 32 mins 1 sec
  730. @ 44 days 17 hours 32 mins 1 sec
  731. @ 45 days 17 hours 32 mins 1 sec
  732. @ 45 days 17 hours 32 mins 1 sec
  733. @ 308 days 6 hours 27 mins 59 secs ago
  734. @ 307 days 6 hours 27 mins 59 secs ago
  735. @ 306 days 6 hours 27 mins 59 secs ago
  736. @ 2 days 6 hours 27 mins 59 secs ago
  737. @ 1 day 6 hours 27 mins 59 secs ago
  738. @ 6 hours 27 mins 59 secs ago
  739. @ 57 days 17 hours 32 mins 1 sec
  740. @ 58 days 17 hours 32 mins 1 sec
  741. @ 362 days 17 hours 32 mins 1 sec
  742. @ 363 days 17 hours 32 mins 1 sec
  743. @ 1093 days 17 hours 32 mins 1 sec
  744. @ 1094 days 17 hours 32 mins 1 sec
  745. @ 1459 days 17 hours 32 mins 1 sec
  746. @ 1460 days 17 hours 32 mins 1 sec
  747. (55 rows)
  748. -- DATE_PART (timestamp_part)
  749. SELECT d1 as "timestamp",
  750. date_part( 'year', d1) AS year, date_part( 'month', d1) AS month,
  751. date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour,
  752. date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second
  753. FROM TIMESTAMP_TBL;
  754. timestamp | year | month | day | hour | minute | second
  755. -----------------------------+-----------+-------+-----+------+--------+--------
  756. -infinity | -Infinity | | | | |
  757. infinity | Infinity | | | | |
  758. Thu Jan 01 00:00:00 1970 | 1970 | 1 | 1 | 0 | 0 | 0
  759. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  760. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  761. Mon Feb 10 17:32:02 1997 | 1997 | 2 | 10 | 17 | 32 | 2
  762. Mon Feb 10 17:32:01.4 1997 | 1997 | 2 | 10 | 17 | 32 | 1.4
  763. Mon Feb 10 17:32:01.5 1997 | 1997 | 2 | 10 | 17 | 32 | 1.5
  764. Mon Feb 10 17:32:01.6 1997 | 1997 | 2 | 10 | 17 | 32 | 1.6
  765. Thu Jan 02 00:00:00 1997 | 1997 | 1 | 2 | 0 | 0 | 0
  766. Thu Jan 02 03:04:05 1997 | 1997 | 1 | 2 | 3 | 4 | 5
  767. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  768. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  769. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  770. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  771. Tue Jun 10 17:32:01 1997 | 1997 | 6 | 10 | 17 | 32 | 1
  772. Sat Sep 22 18:19:20 2001 | 2001 | 9 | 22 | 18 | 19 | 20
  773. Wed Mar 15 08:14:01 2000 | 2000 | 3 | 15 | 8 | 14 | 1
  774. Wed Mar 15 13:14:02 2000 | 2000 | 3 | 15 | 13 | 14 | 2
  775. Wed Mar 15 12:14:03 2000 | 2000 | 3 | 15 | 12 | 14 | 3
  776. Wed Mar 15 03:14:04 2000 | 2000 | 3 | 15 | 3 | 14 | 4
  777. Wed Mar 15 02:14:05 2000 | 2000 | 3 | 15 | 2 | 14 | 5
  778. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  779. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  780. Mon Feb 10 17:32:00 1997 | 1997 | 2 | 10 | 17 | 32 | 0
  781. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  782. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  783. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  784. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  785. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  786. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  787. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  788. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  789. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  790. Tue Jun 10 18:32:01 1997 | 1997 | 6 | 10 | 18 | 32 | 1
  791. Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
  792. Tue Feb 11 17:32:01 1997 | 1997 | 2 | 11 | 17 | 32 | 1
  793. Wed Feb 12 17:32:01 1997 | 1997 | 2 | 12 | 17 | 32 | 1
  794. Thu Feb 13 17:32:01 1997 | 1997 | 2 | 13 | 17 | 32 | 1
  795. Fri Feb 14 17:32:01 1997 | 1997 | 2 | 14 | 17 | 32 | 1
  796. Sat Feb 15 17:32:01 1997 | 1997 | 2 | 15 | 17 | 32 | 1
  797. Sun Feb 16 17:32:01 1997 | 1997 | 2 | 16 | 17 | 32 | 1
  798. Tue Feb 16 17:32:01 0097 BC | -97 | 2 | 16 | 17 | 32 | 1
  799. Sat Feb 16 17:32:01 0097 | 97 | 2 | 16 | 17 | 32 | 1
  800. Thu Feb 16 17:32:01 0597 | 597 | 2 | 16 | 17 | 32 | 1
  801. Tue Feb 16 17:32:01 1097 | 1097 | 2 | 16 | 17 | 32 | 1
  802. Sat Feb 16 17:32:01 1697 | 1697 | 2 | 16 | 17 | 32 | 1
  803. Thu Feb 16 17:32:01 1797 | 1797 | 2 | 16 | 17 | 32 | 1
  804. Tue Feb 16 17:32:01 1897 | 1897 | 2 | 16 | 17 | 32 | 1
  805. Sun Feb 16 17:32:01 1997 | 1997 | 2 | 16 | 17 | 32 | 1
  806. Sat Feb 16 17:32:01 2097 | 2097 | 2 | 16 | 17 | 32 | 1
  807. Wed Feb 28 17:32:01 1996 | 1996 | 2 | 28 | 17 | 32 | 1
  808. Thu Feb 29 17:32:01 1996 | 1996 | 2 | 29 | 17 | 32 | 1
  809. Fri Mar 01 17:32:01 1996 | 1996 | 3 | 1 | 17 | 32 | 1
  810. Mon Dec 30 17:32:01 1996 | 1996 | 12 | 30 | 17 | 32 | 1
  811. Tue Dec 31 17:32:01 1996 | 1996 | 12 | 31 | 17 | 32 | 1
  812. Wed Jan 01 17:32:01 1997 | 1997 | 1 | 1 | 17 | 32 | 1
  813. Fri Feb 28 17:32:01 1997 | 1997 | 2 | 28 | 17 | 32 | 1
  814. Sat Mar 01 17:32:01 1997 | 1997 | 3 | 1 | 17 | 32 | 1
  815. Tue Dec 30 17:32:01 1997 | 1997 | 12 | 30 | 17 | 32 | 1
  816. Wed Dec 31 17:32:01 1997 | 1997 | 12 | 31 | 17 | 32 | 1
  817. Fri Dec 31 17:32:01 1999 | 1999 | 12 | 31 | 17 | 32 | 1
  818. Sat Jan 01 17:32:01 2000 | 2000 | 1 | 1 | 17 | 32 | 1
  819. Sun Dec 31 17:32:01 2000 | 2000 | 12 | 31 | 17 | 32 | 1
  820. Mon Jan 01 17:32:01 2001 | 2001 | 1 | 1 | 17 | 32 | 1
  821. (65 rows)
  822. SELECT d1 as "timestamp",
  823. date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
  824. date_part( 'usec', d1) AS usec
  825. FROM TIMESTAMP_TBL;
  826. timestamp | quarter | msec | usec
  827. -----------------------------+---------+-------+----------
  828. -infinity | | |
  829. infinity | | |
  830. Thu Jan 01 00:00:00 1970 | 1 | 0 | 0
  831. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  832. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  833. Mon Feb 10 17:32:02 1997 | 1 | 2000 | 2000000
  834. Mon Feb 10 17:32:01.4 1997 | 1 | 1400 | 1400000
  835. Mon Feb 10 17:32:01.5 1997 | 1 | 1500 | 1500000
  836. Mon Feb 10 17:32:01.6 1997 | 1 | 1600 | 1600000
  837. Thu Jan 02 00:00:00 1997 | 1 | 0 | 0
  838. Thu Jan 02 03:04:05 1997 | 1 | 5000 | 5000000
  839. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  840. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  841. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  842. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  843. Tue Jun 10 17:32:01 1997 | 2 | 1000 | 1000000
  844. Sat Sep 22 18:19:20 2001 | 3 | 20000 | 20000000
  845. Wed Mar 15 08:14:01 2000 | 1 | 1000 | 1000000
  846. Wed Mar 15 13:14:02 2000 | 1 | 2000 | 2000000
  847. Wed Mar 15 12:14:03 2000 | 1 | 3000 | 3000000
  848. Wed Mar 15 03:14:04 2000 | 1 | 4000 | 4000000
  849. Wed Mar 15 02:14:05 2000 | 1 | 5000 | 5000000
  850. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  851. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  852. Mon Feb 10 17:32:00 1997 | 1 | 0 | 0
  853. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  854. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  855. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  856. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  857. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  858. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  859. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  860. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  861. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  862. Tue Jun 10 18:32:01 1997 | 2 | 1000 | 1000000
  863. Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
  864. Tue Feb 11 17:32:01 1997 | 1 | 1000 | 1000000
  865. Wed Feb 12 17:32:01 1997 | 1 | 1000 | 1000000
  866. Thu Feb 13 17:32:01 1997 | 1 | 1000 | 1000000
  867. Fri Feb 14 17:32:01 1997 | 1 | 1000 | 1000000
  868. Sat Feb 15 17:32:01 1997 | 1 | 1000 | 1000000
  869. Sun Feb 16 17:32:01 1997 | 1 | 1000 | 1000000
  870. Tue Feb 16 17:32:01 0097 BC | 1 | 1000 | 1000000
  871. Sat Feb 16 17:32:01 0097 | 1 | 1000 | 1000000
  872. Thu Feb 16 17:32:01 0597 | 1 | 1000 | 1000000
  873. Tue Feb 16 17:32:01 1097 | 1 | 1000 | 1000000
  874. Sat Feb 16 17:32:01 1697 | 1 | 1000 | 1000000
  875. Thu Feb 16 17:32:01 1797 | 1 | 1000 | 1000000
  876. Tue Feb 16 17:32:01 1897 | 1 | 1000 | 1000000
  877. Sun Feb 16 17:32:01 1997 | 1 | 1000 | 1000000
  878. Sat Feb 16 17:32:01 2097 | 1 | 1000 | 1000000
  879. Wed Feb 28 17:32:01 1996 | 1 | 1000 | 1000000
  880. Thu Feb 29 17:32:01 1996 | 1 | 1000 | 1000000
  881. Fri Mar 01 17:32:01 1996 | 1 | 1000 | 1000000
  882. Mon Dec 30 17:32:01 1996 | 4 | 1000 | 1000000
  883. Tue Dec 31 17:32:01 1996 | 4 | 1000 | 1000000
  884. Wed Jan 01 17:32:01 1997 | 1 | 1000 | 1000000
  885. Fri Feb 28 17:32:01 1997 | 1 | 1000 | 1000000
  886. Sat Mar 01 17:32:01 1997 | 1 | 1000 | 1000000
  887. Tue Dec 30 17:32:01 1997 | 4 | 1000 | 1000000
  888. Wed Dec 31 17:32:01 1997 | 4 | 1000 | 1000000
  889. Fri Dec 31 17:32:01 1999 | 4 | 1000 | 1000000
  890. Sat Jan 01 17:32:01 2000 | 1 | 1000 | 1000000
  891. Sun Dec 31 17:32:01 2000 | 4 | 1000 | 1000000
  892. Mon Jan 01 17:32:01 2001 | 1 | 1000 | 1000000
  893. (65 rows)
  894. SELECT d1 as "timestamp",
  895. date_part( 'isoyear', d1) AS isoyear, date_part( 'week', d1) AS week,
  896. date_part( 'isodow', d1) AS isodow, date_part( 'dow', d1) AS dow,
  897. date_part( 'doy', d1) AS doy
  898. FROM TIMESTAMP_TBL;
  899. timestamp | isoyear | week | isodow | dow | doy
  900. -----------------------------+-----------+------+--------+-----+-----
  901. -infinity | -Infinity | | | |
  902. infinity | Infinity | | | |
  903. Thu Jan 01 00:00:00 1970 | 1970 | 1 | 4 | 4 | 1
  904. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  905. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  906. Mon Feb 10 17:32:02 1997 | 1997 | 7 | 1 | 1 | 41
  907. Mon Feb 10 17:32:01.4 1997 | 1997 | 7 | 1 | 1 | 41
  908. Mon Feb 10 17:32:01.5 1997 | 1997 | 7 | 1 | 1 | 41
  909. Mon Feb 10 17:32:01.6 1997 | 1997 | 7 | 1 | 1 | 41
  910. Thu Jan 02 00:00:00 1997 | 1997 | 1 | 4 | 4 | 2
  911. Thu Jan 02 03:04:05 1997 | 1997 | 1 | 4 | 4 | 2
  912. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  913. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  914. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  915. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  916. Tue Jun 10 17:32:01 1997 | 1997 | 24 | 2 | 2 | 161
  917. Sat Sep 22 18:19:20 2001 | 2001 | 38 | 6 | 6 | 265
  918. Wed Mar 15 08:14:01 2000 | 2000 | 11 | 3 | 3 | 75
  919. Wed Mar 15 13:14:02 2000 | 2000 | 11 | 3 | 3 | 75
  920. Wed Mar 15 12:14:03 2000 | 2000 | 11 | 3 | 3 | 75
  921. Wed Mar 15 03:14:04 2000 | 2000 | 11 | 3 | 3 | 75
  922. Wed Mar 15 02:14:05 2000 | 2000 | 11 | 3 | 3 | 75
  923. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  924. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  925. Mon Feb 10 17:32:00 1997 | 1997 | 7 | 1 | 1 | 41
  926. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  927. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  928. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  929. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  930. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  931. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  932. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  933. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  934. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  935. Tue Jun 10 18:32:01 1997 | 1997 | 24 | 2 | 2 | 161
  936. Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41
  937. Tue Feb 11 17:32:01 1997 | 1997 | 7 | 2 | 2 | 42
  938. Wed Feb 12 17:32:01 1997 | 1997 | 7 | 3 | 3 | 43
  939. Thu Feb 13 17:32:01 1997 | 1997 | 7 | 4 | 4 | 44
  940. Fri Feb 14 17:32:01 1997 | 1997 | 7 | 5 | 5 | 45
  941. Sat Feb 15 17:32:01 1997 | 1997 | 7 | 6 | 6 | 46
  942. Sun Feb 16 17:32:01 1997 | 1997 | 7 | 7 | 0 | 47
  943. Tue Feb 16 17:32:01 0097 BC | -97 | 7 | 2 | 2 | 47
  944. Sat Feb 16 17:32:01 0097 | 97 | 7 | 6 | 6 | 47
  945. Thu Feb 16 17:32:01 0597 | 597 | 7 | 4 | 4 | 47
  946. Tue Feb 16 17:32:01 1097 | 1097 | 7 | 2 | 2 | 47
  947. Sat Feb 16 17:32:01 1697 | 1697 | 7 | 6 | 6 | 47
  948. Thu Feb 16 17:32:01 1797 | 1797 | 7 | 4 | 4 | 47
  949. Tue Feb 16 17:32:01 1897 | 1897 | 7 | 2 | 2 | 47
  950. Sun Feb 16 17:32:01 1997 | 1997 | 7 | 7 | 0 | 47
  951. Sat Feb 16 17:32:01 2097 | 2097 | 7 | 6 | 6 | 47
  952. Wed Feb 28 17:32:01 1996 | 1996 | 9 | 3 | 3 | 59
  953. Thu Feb 29 17:32:01 1996 | 1996 | 9 | 4 | 4 | 60
  954. Fri Mar 01 17:32:01 1996 | 1996 | 9 | 5 | 5 | 61
  955. Mon Dec 30 17:32:01 1996 | 1997 | 1 | 1 | 1 | 365
  956. Tue Dec 31 17:32:01 1996 | 1997 | 1 | 2 | 2 | 366
  957. Wed Jan 01 17:32:01 1997 | 1997 | 1 | 3 | 3 | 1
  958. Fri Feb 28 17:32:01 1997 | 1997 | 9 | 5 | 5 | 59
  959. Sat Mar 01 17:32:01 1997 | 1997 | 9 | 6 | 6 | 60
  960. Tue Dec 30 17:32:01 1997 | 1998 | 1 | 2 | 2 | 364
  961. Wed Dec 31 17:32:01 1997 | 1998 | 1 | 3 | 3 | 365
  962. Fri Dec 31 17:32:01 1999 | 1999 | 52 | 5 | 5 | 365
  963. Sat Jan 01 17:32:01 2000 | 1999 | 52 | 6 | 6 | 1
  964. Sun Dec 31 17:32:01 2000 | 2000 | 52 | 7 | 0 | 366
  965. Mon Jan 01 17:32:01 2001 | 2001 | 1 | 1 | 1 | 1
  966. (65 rows)
  967. SELECT d1 as "timestamp",
  968. date_part( 'decade', d1) AS decade,
  969. date_part( 'century', d1) AS century,
  970. date_part( 'millennium', d1) AS millennium,
  971. round(date_part( 'julian', d1)) AS julian,
  972. date_part( 'epoch', d1) AS epoch
  973. FROM TIMESTAMP_TBL;
  974. timestamp | decade | century | millennium | julian | epoch
  975. -----------------------------+-----------+-----------+------------+-----------+--------------
  976. -infinity | -Infinity | -Infinity | -Infinity | -Infinity | -Infinity
  977. infinity | Infinity | Infinity | Infinity | Infinity | Infinity
  978. Thu Jan 01 00:00:00 1970 | 197 | 20 | 2 | 2440588 | 0
  979. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  980. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  981. Mon Feb 10 17:32:02 1997 | 199 | 20 | 2 | 2450491 | 855595922
  982. Mon Feb 10 17:32:01.4 1997 | 199 | 20 | 2 | 2450491 | 855595921.4
  983. Mon Feb 10 17:32:01.5 1997 | 199 | 20 | 2 | 2450491 | 855595921.5
  984. Mon Feb 10 17:32:01.6 1997 | 199 | 20 | 2 | 2450491 | 855595921.6
  985. Thu Jan 02 00:00:00 1997 | 199 | 20 | 2 | 2450451 | 852163200
  986. Thu Jan 02 03:04:05 1997 | 199 | 20 | 2 | 2450451 | 852174245
  987. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  988. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  989. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  990. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  991. Tue Jun 10 17:32:01 1997 | 199 | 20 | 2 | 2450611 | 865963921
  992. Sat Sep 22 18:19:20 2001 | 200 | 21 | 3 | 2452176 | 1001182760
  993. Wed Mar 15 08:14:01 2000 | 200 | 20 | 2 | 2451619 | 953108041
  994. Wed Mar 15 13:14:02 2000 | 200 | 20 | 2 | 2451620 | 953126042
  995. Wed Mar 15 12:14:03 2000 | 200 | 20 | 2 | 2451620 | 953122443
  996. Wed Mar 15 03:14:04 2000 | 200 | 20 | 2 | 2451619 | 953090044
  997. Wed Mar 15 02:14:05 2000 | 200 | 20 | 2 | 2451619 | 953086445
  998. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  999. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1000. Mon Feb 10 17:32:00 1997 | 199 | 20 | 2 | 2450491 | 855595920
  1001. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1002. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1003. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1004. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1005. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1006. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1007. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1008. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1009. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1010. Tue Jun 10 18:32:01 1997 | 199 | 20 | 2 | 2450611 | 865967521
  1011. Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921
  1012. Tue Feb 11 17:32:01 1997 | 199 | 20 | 2 | 2450492 | 855682321
  1013. Wed Feb 12 17:32:01 1997 | 199 | 20 | 2 | 2450493 | 855768721
  1014. Thu Feb 13 17:32:01 1997 | 199 | 20 | 2 | 2450494 | 855855121
  1015. Fri Feb 14 17:32:01 1997 | 199 | 20 | 2 | 2450495 | 855941521
  1016. Sat Feb 15 17:32:01 1997 | 199 | 20 | 2 | 2450496 | 856027921
  1017. Sun Feb 16 17:32:01 1997 | 199 | 20 | 2 | 2450497 | 856114321
  1018. Tue Feb 16 17:32:01 0097 BC | -10 | -1 | -1 | 1686043 | -65192711279
  1019. Sat Feb 16 17:32:01 0097 | 9 | 1 | 1 | 1756537 | -59102029679
  1020. Thu Feb 16 17:32:01 0597 | 59 | 6 | 1 | 1939158 | -43323575279
  1021. Tue Feb 16 17:32:01 1097 | 109 | 11 | 2 | 2121779 | -27545120879
  1022. Sat Feb 16 17:32:01 1697 | 169 | 17 | 2 | 2340925 | -8610906479
  1023. Thu Feb 16 17:32:01 1797 | 179 | 18 | 2 | 2377449 | -5455232879
  1024. Tue Feb 16 17:32:01 1897 | 189 | 19 | 2 | 2413973 | -2299559279
  1025. Sun Feb 16 17:32:01 1997 | 199 | 20 | 2 | 2450497 | 856114321
  1026. Sat Feb 16 17:32:01 2097 | 209 | 21 | 3 | 2487022 | 4011874321
  1027. Wed Feb 28 17:32:01 1996 | 199 | 20 | 2 | 2450143 | 825528721
  1028. Thu Feb 29 17:32:01 1996 | 199 | 20 | 2 | 2450144 | 825615121
  1029. Fri Mar 01 17:32:01 1996 | 199 | 20 | 2 | 2450145 | 825701521
  1030. Mon Dec 30 17:32:01 1996 | 199 | 20 | 2 | 2450449 | 851967121
  1031. Tue Dec 31 17:32:01 1996 | 199 | 20 | 2 | 2450450 | 852053521
  1032. Wed Jan 01 17:32:01 1997 | 199 | 20 | 2 | 2450451 | 852139921
  1033. Fri Feb 28 17:32:01 1997 | 199 | 20 | 2 | 2450509 | 857151121
  1034. Sat Mar 01 17:32:01 1997 | 199 | 20 | 2 | 2450510 | 857237521
  1035. Tue Dec 30 17:32:01 1997 | 199 | 20 | 2 | 2450814 | 883503121
  1036. Wed Dec 31 17:32:01 1997 | 199 | 20 | 2 | 2450815 | 883589521
  1037. Fri Dec 31 17:32:01 1999 | 199 | 20 | 2 | 2451545 | 946661521
  1038. Sat Jan 01 17:32:01 2000 | 200 | 20 | 2 | 2451546 | 946747921
  1039. Sun Dec 31 17:32:01 2000 | 200 | 20 | 2 | 2451911 | 978283921
  1040. Mon Jan 01 17:32:01 2001 | 200 | 21 | 3 | 2451912 | 978370321
  1041. (65 rows)
  1042. -- extract implementation is mostly the same as date_part, so only
  1043. -- test a few cases for additional coverage.
  1044. SELECT d1 as "timestamp",
  1045. extract(microseconds from d1) AS microseconds,
  1046. extract(milliseconds from d1) AS milliseconds,
  1047. extract(seconds from d1) AS seconds,
  1048. round(extract(julian from d1)) AS julian,
  1049. extract(epoch from d1) AS epoch
  1050. FROM TIMESTAMP_TBL;
  1051. timestamp | microseconds | milliseconds | seconds | julian | epoch
  1052. -----------------------------+--------------+--------------+-----------+-----------+---------------------
  1053. -infinity | | | | -Infinity | -Infinity
  1054. infinity | | | | Infinity | Infinity
  1055. Thu Jan 01 00:00:00 1970 | 0 | 0.000 | 0.000000 | 2440588 | 0.000000
  1056. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1057. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1058. Mon Feb 10 17:32:02 1997 | 2000000 | 2000.000 | 2.000000 | 2450491 | 855595922.000000
  1059. Mon Feb 10 17:32:01.4 1997 | 1400000 | 1400.000 | 1.400000 | 2450491 | 855595921.400000
  1060. Mon Feb 10 17:32:01.5 1997 | 1500000 | 1500.000 | 1.500000 | 2450491 | 855595921.500000
  1061. Mon Feb 10 17:32:01.6 1997 | 1600000 | 1600.000 | 1.600000 | 2450491 | 855595921.600000
  1062. Thu Jan 02 00:00:00 1997 | 0 | 0.000 | 0.000000 | 2450451 | 852163200.000000
  1063. Thu Jan 02 03:04:05 1997 | 5000000 | 5000.000 | 5.000000 | 2450451 | 852174245.000000
  1064. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1065. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1066. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1067. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1068. Tue Jun 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450611 | 865963921.000000
  1069. Sat Sep 22 18:19:20 2001 | 20000000 | 20000.000 | 20.000000 | 2452176 | 1001182760.000000
  1070. Wed Mar 15 08:14:01 2000 | 1000000 | 1000.000 | 1.000000 | 2451619 | 953108041.000000
  1071. Wed Mar 15 13:14:02 2000 | 2000000 | 2000.000 | 2.000000 | 2451620 | 953126042.000000
  1072. Wed Mar 15 12:14:03 2000 | 3000000 | 3000.000 | 3.000000 | 2451620 | 953122443.000000
  1073. Wed Mar 15 03:14:04 2000 | 4000000 | 4000.000 | 4.000000 | 2451619 | 953090044.000000
  1074. Wed Mar 15 02:14:05 2000 | 5000000 | 5000.000 | 5.000000 | 2451619 | 953086445.000000
  1075. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1076. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1077. Mon Feb 10 17:32:00 1997 | 0 | 0.000 | 0.000000 | 2450491 | 855595920.000000
  1078. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1079. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1080. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1081. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1082. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1083. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1084. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1085. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1086. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1087. Tue Jun 10 18:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450611 | 865967521.000000
  1088. Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000
  1089. Tue Feb 11 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450492 | 855682321.000000
  1090. Wed Feb 12 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450493 | 855768721.000000
  1091. Thu Feb 13 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450494 | 855855121.000000
  1092. Fri Feb 14 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450495 | 855941521.000000
  1093. Sat Feb 15 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450496 | 856027921.000000
  1094. Sun Feb 16 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450497 | 856114321.000000
  1095. Tue Feb 16 17:32:01 0097 BC | 1000000 | 1000.000 | 1.000000 | 1686043 | -65192711279.000000
  1096. Sat Feb 16 17:32:01 0097 | 1000000 | 1000.000 | 1.000000 | 1756537 | -59102029679.000000
  1097. Thu Feb 16 17:32:01 0597 | 1000000 | 1000.000 | 1.000000 | 1939158 | -43323575279.000000
  1098. Tue Feb 16 17:32:01 1097 | 1000000 | 1000.000 | 1.000000 | 2121779 | -27545120879.000000
  1099. Sat Feb 16 17:32:01 1697 | 1000000 | 1000.000 | 1.000000 | 2340925 | -8610906479.000000
  1100. Thu Feb 16 17:32:01 1797 | 1000000 | 1000.000 | 1.000000 | 2377449 | -5455232879.000000
  1101. Tue Feb 16 17:32:01 1897 | 1000000 | 1000.000 | 1.000000 | 2413973 | -2299559279.000000
  1102. Sun Feb 16 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450497 | 856114321.000000
  1103. Sat Feb 16 17:32:01 2097 | 1000000 | 1000.000 | 1.000000 | 2487022 | 4011874321.000000
  1104. Wed Feb 28 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450143 | 825528721.000000
  1105. Thu Feb 29 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450144 | 825615121.000000
  1106. Fri Mar 01 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450145 | 825701521.000000
  1107. Mon Dec 30 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450449 | 851967121.000000
  1108. Tue Dec 31 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450450 | 852053521.000000
  1109. Wed Jan 01 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450451 | 852139921.000000
  1110. Fri Feb 28 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450509 | 857151121.000000
  1111. Sat Mar 01 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450510 | 857237521.000000
  1112. Tue Dec 30 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450814 | 883503121.000000
  1113. Wed Dec 31 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450815 | 883589521.000000
  1114. Fri Dec 31 17:32:01 1999 | 1000000 | 1000.000 | 1.000000 | 2451545 | 946661521.000000
  1115. Sat Jan 01 17:32:01 2000 | 1000000 | 1000.000 | 1.000000 | 2451546 | 946747921.000000
  1116. Sun Dec 31 17:32:01 2000 | 1000000 | 1000.000 | 1.000000 | 2451911 | 978283921.000000
  1117. Mon Jan 01 17:32:01 2001 | 1000000 | 1000.000 | 1.000000 | 2451912 | 978370321.000000
  1118. (65 rows)
  1119. -- value near upper bound uses special case in code
  1120. SELECT date_part('epoch', '294270-01-01 00:00:00'::timestamp);
  1121. date_part
  1122. ---------------
  1123. 9224097091200
  1124. (1 row)
  1125. SELECT extract(epoch from '294270-01-01 00:00:00'::timestamp);
  1126. extract
  1127. ----------------------
  1128. 9224097091200.000000
  1129. (1 row)
  1130. -- another internal overflow test case
  1131. SELECT extract(epoch from '5000-01-01 00:00:00'::timestamp);
  1132. extract
  1133. --------------------
  1134. 95617584000.000000
  1135. (1 row)
  1136. -- TO_CHAR()
  1137. SELECT to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
  1138. FROM TIMESTAMP_TBL;
  1139. to_char
  1140. ------------------------------------------------------------------------------------------
  1141. THURSDAY Thursday thursday THU Thu thu JANUARY January january I JAN Jan jan
  1142. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1143. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1144. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1145. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1146. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1147. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1148. THURSDAY Thursday thursday THU Thu thu JANUARY January january I JAN Jan jan
  1149. THURSDAY Thursday thursday THU Thu thu JANUARY January january I JAN Jan jan
  1150. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1151. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1152. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1153. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1154. TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun
  1155. SATURDAY Saturday saturday SAT Sat sat SEPTEMBER September september IX SEP Sep sep
  1156. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1157. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1158. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1159. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1160. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1161. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1162. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1163. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1164. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1165. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1166. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1167. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1168. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1169. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1170. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1171. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1172. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1173. TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun
  1174. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1175. TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
  1176. WEDNESDAY Wednesday wednesday WED Wed wed FEBRUARY February february II FEB Feb feb
  1177. THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
  1178. FRIDAY Friday friday FRI Fri fri FEBRUARY February february II FEB Feb feb
  1179. SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
  1180. SUNDAY Sunday sunday SUN Sun sun FEBRUARY February february II FEB Feb feb
  1181. TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
  1182. SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
  1183. THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
  1184. TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
  1185. SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
  1186. THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
  1187. TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
  1188. SUNDAY Sunday sunday SUN Sun sun FEBRUARY February february II FEB Feb feb
  1189. SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
  1190. WEDNESDAY Wednesday wednesday WED Wed wed FEBRUARY February february II FEB Feb feb
  1191. THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
  1192. FRIDAY Friday friday FRI Fri fri MARCH March march III MAR Mar mar
  1193. MONDAY Monday monday MON Mon mon DECEMBER December december XII DEC Dec dec
  1194. TUESDAY Tuesday tuesday TUE Tue tue DECEMBER December december XII DEC Dec dec
  1195. WEDNESDAY Wednesday wednesday WED Wed wed JANUARY January january I JAN Jan jan
  1196. FRIDAY Friday friday FRI Fri fri FEBRUARY February february II FEB Feb feb
  1197. SATURDAY Saturday saturday SAT Sat sat MARCH March march III MAR Mar mar
  1198. TUESDAY Tuesday tuesday TUE Tue tue DECEMBER December december XII DEC Dec dec
  1199. WEDNESDAY Wednesday wednesday WED Wed wed DECEMBER December december XII DEC Dec dec
  1200. FRIDAY Friday friday FRI Fri fri DECEMBER December december XII DEC Dec dec
  1201. SATURDAY Saturday saturday SAT Sat sat JANUARY January january I JAN Jan jan
  1202. SUNDAY Sunday sunday SUN Sun sun DECEMBER December december XII DEC Dec dec
  1203. MONDAY Monday monday MON Mon mon JANUARY January january I JAN Jan jan
  1204. (65 rows)
  1205. SELECT to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM')
  1206. FROM TIMESTAMP_TBL;
  1207. to_char
  1208. --------------------------------------------------------------
  1209. THURSDAY Thursday thursday JANUARY January january I
  1210. MONDAY Monday monday FEBRUARY February february II
  1211. MONDAY Monday monday FEBRUARY February february II
  1212. MONDAY Monday monday FEBRUARY February february II
  1213. MONDAY Monday monday FEBRUARY February february II
  1214. MONDAY Monday monday FEBRUARY February february II
  1215. MONDAY Monday monday FEBRUARY February february II
  1216. THURSDAY Thursday thursday JANUARY January january I
  1217. THURSDAY Thursday thursday JANUARY January january I
  1218. MONDAY Monday monday FEBRUARY February february II
  1219. MONDAY Monday monday FEBRUARY February february II
  1220. MONDAY Monday monday FEBRUARY February february II
  1221. MONDAY Monday monday FEBRUARY February february II
  1222. TUESDAY Tuesday tuesday JUNE June june VI
  1223. SATURDAY Saturday saturday SEPTEMBER September september IX
  1224. WEDNESDAY Wednesday wednesday MARCH March march III
  1225. WEDNESDAY Wednesday wednesday MARCH March march III
  1226. WEDNESDAY Wednesday wednesday MARCH March march III
  1227. WEDNESDAY Wednesday wednesday MARCH March march III
  1228. WEDNESDAY Wednesday wednesday MARCH March march III
  1229. MONDAY Monday monday FEBRUARY February february II
  1230. MONDAY Monday monday FEBRUARY February february II
  1231. MONDAY Monday monday FEBRUARY February february II
  1232. MONDAY Monday monday FEBRUARY February february II
  1233. MONDAY Monday monday FEBRUARY February february II
  1234. MONDAY Monday monday FEBRUARY February february II
  1235. MONDAY Monday monday FEBRUARY February february II
  1236. MONDAY Monday monday FEBRUARY February february II
  1237. MONDAY Monday monday FEBRUARY February february II
  1238. MONDAY Monday monday FEBRUARY February february II
  1239. MONDAY Monday monday FEBRUARY February february II
  1240. MONDAY Monday monday FEBRUARY February february II
  1241. TUESDAY Tuesday tuesday JUNE June june VI
  1242. MONDAY Monday monday FEBRUARY February february II
  1243. TUESDAY Tuesday tuesday FEBRUARY February february II
  1244. WEDNESDAY Wednesday wednesday FEBRUARY February february II
  1245. THURSDAY Thursday thursday FEBRUARY February february II
  1246. FRIDAY Friday friday FEBRUARY February february II
  1247. SATURDAY Saturday saturday FEBRUARY February february II
  1248. SUNDAY Sunday sunday FEBRUARY February february II
  1249. TUESDAY Tuesday tuesday FEBRUARY February february II
  1250. SATURDAY Saturday saturday FEBRUARY February february II
  1251. THURSDAY Thursday thursday FEBRUARY February february II
  1252. TUESDAY Tuesday tuesday FEBRUARY February february II
  1253. SATURDAY Saturday saturday FEBRUARY February february II
  1254. THURSDAY Thursday thursday FEBRUARY February february II
  1255. TUESDAY Tuesday tuesday FEBRUARY February february II
  1256. SUNDAY Sunday sunday FEBRUARY February february II
  1257. SATURDAY Saturday saturday FEBRUARY February february II
  1258. WEDNESDAY Wednesday wednesday FEBRUARY February february II
  1259. THURSDAY Thursday thursday FEBRUARY February february II
  1260. FRIDAY Friday friday MARCH March march III
  1261. MONDAY Monday monday DECEMBER December december XII
  1262. TUESDAY Tuesday tuesday DECEMBER December december XII
  1263. WEDNESDAY Wednesday wednesday JANUARY January january I
  1264. FRIDAY Friday friday FEBRUARY February february II
  1265. SATURDAY Saturday saturday MARCH March march III
  1266. TUESDAY Tuesday tuesday DECEMBER December december XII
  1267. WEDNESDAY Wednesday wednesday DECEMBER December december XII
  1268. FRIDAY Friday friday DECEMBER December december XII
  1269. SATURDAY Saturday saturday JANUARY January january I
  1270. SUNDAY Sunday sunday DECEMBER December december XII
  1271. MONDAY Monday monday JANUARY January january I
  1272. (65 rows)
  1273. SELECT to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
  1274. FROM TIMESTAMP_TBL;
  1275. to_char
  1276. --------------------------------------------------
  1277. 1,970 1970 970 70 0 20 1 01 01 001 01 5 2440588
  1278. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1279. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1280. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1281. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1282. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1283. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1284. 1,997 1997 997 97 7 20 1 01 01 002 02 5 2450451
  1285. 1,997 1997 997 97 7 20 1 01 01 002 02 5 2450451
  1286. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1287. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1288. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1289. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1290. 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610
  1291. 2,001 2001 001 01 1 21 3 09 38 265 22 7 2452175
  1292. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1293. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1294. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1295. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1296. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1297. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1298. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1299. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1300. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1301. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1302. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1303. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1304. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1305. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1306. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1307. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1308. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1309. 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610
  1310. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1311. 1,997 1997 997 97 7 20 1 02 06 042 11 3 2450491
  1312. 1,997 1997 997 97 7 20 1 02 07 043 12 4 2450492
  1313. 1,997 1997 997 97 7 20 1 02 07 044 13 5 2450493
  1314. 1,997 1997 997 97 7 20 1 02 07 045 14 6 2450494
  1315. 1,997 1997 997 97 7 20 1 02 07 046 15 7 2450495
  1316. 1,997 1997 997 97 7 20 1 02 07 047 16 1 2450496
  1317. 0,097 0097 097 97 7 -01 1 02 07 047 16 3 1686042
  1318. 0,097 0097 097 97 7 01 1 02 07 047 16 7 1756536
  1319. 0,597 0597 597 97 7 06 1 02 07 047 16 5 1939157
  1320. 1,097 1097 097 97 7 11 1 02 07 047 16 3 2121778
  1321. 1,697 1697 697 97 7 17 1 02 07 047 16 7 2340924
  1322. 1,797 1797 797 97 7 18 1 02 07 047 16 5 2377448
  1323. 1,897 1897 897 97 7 19 1 02 07 047 16 3 2413972
  1324. 1,997 1997 997 97 7 20 1 02 07 047 16 1 2450496
  1325. 2,097 2097 097 97 7 21 1 02 07 047 16 7 2487021
  1326. 1,996 1996 996 96 6 20 1 02 09 059 28 4 2450142
  1327. 1,996 1996 996 96 6 20 1 02 09 060 29 5 2450143
  1328. 1,996 1996 996 96 6 20 1 03 09 061 01 6 2450144
  1329. 1,996 1996 996 96 6 20 4 12 53 365 30 2 2450448
  1330. 1,996 1996 996 96 6 20 4 12 53 366 31 3 2450449
  1331. 1,997 1997 997 97 7 20 1 01 01 001 01 4 2450450
  1332. 1,997 1997 997 97 7 20 1 02 09 059 28 6 2450508
  1333. 1,997 1997 997 97 7 20 1 03 09 060 01 7 2450509
  1334. 1,997 1997 997 97 7 20 4 12 52 364 30 3 2450813
  1335. 1,997 1997 997 97 7 20 4 12 53 365 31 4 2450814
  1336. 1,999 1999 999 99 9 20 4 12 53 365 31 6 2451544
  1337. 2,000 2000 000 00 0 20 1 01 01 001 01 7 2451545
  1338. 2,000 2000 000 00 0 20 4 12 53 366 31 1 2451910
  1339. 2,001 2001 001 01 1 21 1 01 01 001 01 2 2451911
  1340. (65 rows)
  1341. SELECT to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ')
  1342. FROM TIMESTAMP_TBL;
  1343. to_char
  1344. -------------------------------------------------
  1345. 1,970 1970 970 70 0 20 1 1 1 1 1 5 2440588
  1346. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1347. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1348. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1349. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1350. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1351. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1352. 1,997 1997 997 97 7 20 1 1 1 2 2 5 2450451
  1353. 1,997 1997 997 97 7 20 1 1 1 2 2 5 2450451
  1354. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1355. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1356. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1357. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1358. 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610
  1359. 2,001 2001 1 1 1 21 3 9 38 265 22 7 2452175
  1360. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1361. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1362. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1363. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1364. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1365. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1366. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1367. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1368. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1369. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1370. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1371. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1372. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1373. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1374. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1375. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1376. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1377. 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610
  1378. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1379. 1,997 1997 997 97 7 20 1 2 6 42 11 3 2450491
  1380. 1,997 1997 997 97 7 20 1 2 7 43 12 4 2450492
  1381. 1,997 1997 997 97 7 20 1 2 7 44 13 5 2450493
  1382. 1,997 1997 997 97 7 20 1 2 7 45 14 6 2450494
  1383. 1,997 1997 997 97 7 20 1 2 7 46 15 7 2450495
  1384. 1,997 1997 997 97 7 20 1 2 7 47 16 1 2450496
  1385. 0,097 97 97 97 7 -1 1 2 7 47 16 3 1686042
  1386. 0,097 97 97 97 7 1 1 2 7 47 16 7 1756536
  1387. 0,597 597 597 97 7 6 1 2 7 47 16 5 1939157
  1388. 1,097 1097 97 97 7 11 1 2 7 47 16 3 2121778
  1389. 1,697 1697 697 97 7 17 1 2 7 47 16 7 2340924
  1390. 1,797 1797 797 97 7 18 1 2 7 47 16 5 2377448
  1391. 1,897 1897 897 97 7 19 1 2 7 47 16 3 2413972
  1392. 1,997 1997 997 97 7 20 1 2 7 47 16 1 2450496
  1393. 2,097 2097 97 97 7 21 1 2 7 47 16 7 2487021
  1394. 1,996 1996 996 96 6 20 1 2 9 59 28 4 2450142
  1395. 1,996 1996 996 96 6 20 1 2 9 60 29 5 2450143
  1396. 1,996 1996 996 96 6 20 1 3 9 61 1 6 2450144
  1397. 1,996 1996 996 96 6 20 4 12 53 365 30 2 2450448
  1398. 1,996 1996 996 96 6 20 4 12 53 366 31 3 2450449
  1399. 1,997 1997 997 97 7 20 1 1 1 1 1 4 2450450
  1400. 1,997 1997 997 97 7 20 1 2 9 59 28 6 2450508
  1401. 1,997 1997 997 97 7 20 1 3 9 60 1 7 2450509
  1402. 1,997 1997 997 97 7 20 4 12 52 364 30 3 2450813
  1403. 1,997 1997 997 97 7 20 4 12 53 365 31 4 2450814
  1404. 1,999 1999 999 99 9 20 4 12 53 365 31 6 2451544
  1405. 2,000 2000 0 0 0 20 1 1 1 1 1 7 2451545
  1406. 2,000 2000 0 0 0 20 4 12 53 366 31 1 2451910
  1407. 2,001 2001 1 1 1 21 1 1 1 1 1 2 2451911
  1408. (65 rows)
  1409. SELECT to_char(d1, 'HH HH12 HH24 MI SS SSSS')
  1410. FROM TIMESTAMP_TBL;
  1411. to_char
  1412. ----------------------
  1413. 12 12 00 00 00 0
  1414. 05 05 17 32 01 63121
  1415. 05 05 17 32 01 63121
  1416. 05 05 17 32 02 63122
  1417. 05 05 17 32 01 63121
  1418. 05 05 17 32 01 63121
  1419. 05 05 17 32 01 63121
  1420. 12 12 00 00 00 0
  1421. 03 03 03 04 05 11045
  1422. 05 05 17 32 01 63121
  1423. 05 05 17 32 01 63121
  1424. 05 05 17 32 01 63121
  1425. 05 05 17 32 01 63121
  1426. 05 05 17 32 01 63121
  1427. 06 06 18 19 20 65960
  1428. 08 08 08 14 01 29641
  1429. 01 01 13 14 02 47642
  1430. 12 12 12 14 03 44043
  1431. 03 03 03 14 04 11644
  1432. 02 02 02 14 05 8045
  1433. 05 05 17 32 01 63121
  1434. 05 05 17 32 01 63121
  1435. 05 05 17 32 00 63120
  1436. 05 05 17 32 01 63121
  1437. 05 05 17 32 01 63121
  1438. 05 05 17 32 01 63121
  1439. 05 05 17 32 01 63121
  1440. 05 05 17 32 01 63121
  1441. 05 05 17 32 01 63121
  1442. 05 05 17 32 01 63121
  1443. 05 05 17 32 01 63121
  1444. 05 05 17 32 01 63121
  1445. 06 06 18 32 01 66721
  1446. 05 05 17 32 01 63121
  1447. 05 05 17 32 01 63121
  1448. 05 05 17 32 01 63121
  1449. 05 05 17 32 01 63121
  1450. 05 05 17 32 01 63121
  1451. 05 05 17 32 01 63121
  1452. 05 05 17 32 01 63121
  1453. 05 05 17 32 01 63121
  1454. 05 05 17 32 01 63121
  1455. 05 05 17 32 01 63121
  1456. 05 05 17 32 01 63121
  1457. 05 05 17 32 01 63121
  1458. 05 05 17 32 01 63121
  1459. 05 05 17 32 01 63121
  1460. 05 05 17 32 01 63121
  1461. 05 05 17 32 01 63121
  1462. 05 05 17 32 01 63121
  1463. 05 05 17 32 01 63121
  1464. 05 05 17 32 01 63121
  1465. 05 05 17 32 01 63121
  1466. 05 05 17 32 01 63121
  1467. 05 05 17 32 01 63121
  1468. 05 05 17 32 01 63121
  1469. 05 05 17 32 01 63121
  1470. 05 05 17 32 01 63121
  1471. 05 05 17 32 01 63121
  1472. 05 05 17 32 01 63121
  1473. 05 05 17 32 01 63121
  1474. 05 05 17 32 01 63121
  1475. 05 05 17 32 01 63121
  1476. (65 rows)
  1477. SELECT to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
  1478. FROM TIMESTAMP_TBL;
  1479. to_char
  1480. -------------------------------------------------
  1481. HH:MI:SS is 12:00:00 "text between quote marks"
  1482. HH:MI:SS is 05:32:01 "text between quote marks"
  1483. HH:MI:SS is 05:32:01 "text between quote marks"
  1484. HH:MI:SS is 05:32:02 "text between quote marks"
  1485. HH:MI:SS is 05:32:01 "text between quote marks"
  1486. HH:MI:SS is 05:32:01 "text between quote marks"
  1487. HH:MI:SS is 05:32:01 "text between quote marks"
  1488. HH:MI:SS is 12:00:00 "text between quote marks"
  1489. HH:MI:SS is 03:04:05 "text between quote marks"
  1490. HH:MI:SS is 05:32:01 "text between quote marks"
  1491. HH:MI:SS is 05:32:01 "text between quote marks"
  1492. HH:MI:SS is 05:32:01 "text between quote marks"
  1493. HH:MI:SS is 05:32:01 "text between quote marks"
  1494. HH:MI:SS is 05:32:01 "text between quote marks"
  1495. HH:MI:SS is 06:19:20 "text between quote marks"
  1496. HH:MI:SS is 08:14:01 "text between quote marks"
  1497. HH:MI:SS is 01:14:02 "text between quote marks"
  1498. HH:MI:SS is 12:14:03 "text between quote marks"
  1499. HH:MI:SS is 03:14:04 "text between quote marks"
  1500. HH:MI:SS is 02:14:05 "text between quote marks"
  1501. HH:MI:SS is 05:32:01 "text between quote marks"
  1502. HH:MI:SS is 05:32:01 "text between quote marks"
  1503. HH:MI:SS is 05:32:00 "text between quote marks"
  1504. HH:MI:SS is 05:32:01 "text between quote marks"
  1505. HH:MI:SS is 05:32:01 "text between quote marks"
  1506. HH:MI:SS is 05:32:01 "text between quote marks"
  1507. HH:MI:SS is 05:32:01 "text between quote marks"
  1508. HH:MI:SS is 05:32:01 "text between quote marks"
  1509. HH:MI:SS is 05:32:01 "text between quote marks"
  1510. HH:MI:SS is 05:32:01 "text between quote marks"
  1511. HH:MI:SS is 05:32:01 "text between quote marks"
  1512. HH:MI:SS is 05:32:01 "text between quote marks"
  1513. HH:MI:SS is 06:32:01 "text between quote marks"
  1514. HH:MI:SS is 05:32:01 "text between quote marks"
  1515. HH:MI:SS is 05:32:01 "text between quote marks"
  1516. HH:MI:SS is 05:32:01 "text between quote marks"
  1517. HH:MI:SS is 05:32:01 "text between quote marks"
  1518. HH:MI:SS is 05:32:01 "text between quote marks"
  1519. HH:MI:SS is 05:32:01 "text between quote marks"
  1520. HH:MI:SS is 05:32:01 "text between quote marks"
  1521. HH:MI:SS is 05:32:01 "text between quote marks"
  1522. HH:MI:SS is 05:32:01 "text between quote marks"
  1523. HH:MI:SS is 05:32:01 "text between quote marks"
  1524. HH:MI:SS is 05:32:01 "text between quote marks"
  1525. HH:MI:SS is 05:32:01 "text between quote marks"
  1526. HH:MI:SS is 05:32:01 "text between quote marks"
  1527. HH:MI:SS is 05:32:01 "text between quote marks"
  1528. HH:MI:SS is 05:32:01 "text between quote marks"
  1529. HH:MI:SS is 05:32:01 "text between quote marks"
  1530. HH:MI:SS is 05:32:01 "text between quote marks"
  1531. HH:MI:SS is 05:32:01 "text between quote marks"
  1532. HH:MI:SS is 05:32:01 "text between quote marks"
  1533. HH:MI:SS is 05:32:01 "text between quote marks"
  1534. HH:MI:SS is 05:32:01 "text between quote marks"
  1535. HH:MI:SS is 05:32:01 "text between quote marks"
  1536. HH:MI:SS is 05:32:01 "text between quote marks"
  1537. HH:MI:SS is 05:32:01 "text between quote marks"
  1538. HH:MI:SS is 05:32:01 "text between quote marks"
  1539. HH:MI:SS is 05:32:01 "text between quote marks"
  1540. HH:MI:SS is 05:32:01 "text between quote marks"
  1541. HH:MI:SS is 05:32:01 "text between quote marks"
  1542. HH:MI:SS is 05:32:01 "text between quote marks"
  1543. HH:MI:SS is 05:32:01 "text between quote marks"
  1544. (65 rows)
  1545. SELECT to_char(d1, 'HH24--text--MI--text--SS')
  1546. FROM TIMESTAMP_TBL;
  1547. to_char
  1548. ------------------------
  1549. 00--text--00--text--00
  1550. 17--text--32--text--01
  1551. 17--text--32--text--01
  1552. 17--text--32--text--02
  1553. 17--text--32--text--01
  1554. 17--text--32--text--01
  1555. 17--text--32--text--01
  1556. 00--text--00--text--00
  1557. 03--text--04--text--05
  1558. 17--text--32--text--01
  1559. 17--text--32--text--01
  1560. 17--text--32--text--01
  1561. 17--text--32--text--01
  1562. 17--text--32--text--01
  1563. 18--text--19--text--20
  1564. 08--text--14--text--01
  1565. 13--text--14--text--02
  1566. 12--text--14--text--03
  1567. 03--text--14--text--04
  1568. 02--text--14--text--05
  1569. 17--text--32--text--01
  1570. 17--text--32--text--01
  1571. 17--text--32--text--00
  1572. 17--text--32--text--01
  1573. 17--text--32--text--01
  1574. 17--text--32--text--01
  1575. 17--text--32--text--01
  1576. 17--text--32--text--01
  1577. 17--text--32--text--01
  1578. 17--text--32--text--01
  1579. 17--text--32--text--01
  1580. 17--text--32--text--01
  1581. 18--text--32--text--01
  1582. 17--text--32--text--01
  1583. 17--text--32--text--01
  1584. 17--text--32--text--01
  1585. 17--text--32--text--01
  1586. 17--text--32--text--01
  1587. 17--text--32--text--01
  1588. 17--text--32--text--01
  1589. 17--text--32--text--01
  1590. 17--text--32--text--01
  1591. 17--text--32--text--01
  1592. 17--text--32--text--01
  1593. 17--text--32--text--01
  1594. 17--text--32--text--01
  1595. 17--text--32--text--01
  1596. 17--text--32--text--01
  1597. 17--text--32--text--01
  1598. 17--text--32--text--01
  1599. 17--text--32--text--01
  1600. 17--text--32--text--01
  1601. 17--text--32--text--01
  1602. 17--text--32--text--01
  1603. 17--text--32--text--01
  1604. 17--text--32--text--01
  1605. 17--text--32--text--01
  1606. 17--text--32--text--01
  1607. 17--text--32--text--01
  1608. 17--text--32--text--01
  1609. 17--text--32--text--01
  1610. 17--text--32--text--01
  1611. 17--text--32--text--01
  1612. (65 rows)
  1613. SELECT to_char(d1, 'YYYYTH YYYYth Jth')
  1614. FROM TIMESTAMP_TBL;
  1615. to_char
  1616. -------------------------
  1617. 1970TH 1970th 2440588th
  1618. 1997TH 1997th 2450490th
  1619. 1997TH 1997th 2450490th
  1620. 1997TH 1997th 2450490th
  1621. 1997TH 1997th 2450490th
  1622. 1997TH 1997th 2450490th
  1623. 1997TH 1997th 2450490th
  1624. 1997TH 1997th 2450451st
  1625. 1997TH 1997th 2450451st
  1626. 1997TH 1997th 2450490th
  1627. 1997TH 1997th 2450490th
  1628. 1997TH 1997th 2450490th
  1629. 1997TH 1997th 2450490th
  1630. 1997TH 1997th 2450610th
  1631. 2001ST 2001st 2452175th
  1632. 2000TH 2000th 2451619th
  1633. 2000TH 2000th 2451619th
  1634. 2000TH 2000th 2451619th
  1635. 2000TH 2000th 2451619th
  1636. 2000TH 2000th 2451619th
  1637. 1997TH 1997th 2450490th
  1638. 1997TH 1997th 2450490th
  1639. 1997TH 1997th 2450490th
  1640. 1997TH 1997th 2450490th
  1641. 1997TH 1997th 2450490th
  1642. 1997TH 1997th 2450490th
  1643. 1997TH 1997th 2450490th
  1644. 1997TH 1997th 2450490th
  1645. 1997TH 1997th 2450490th
  1646. 1997TH 1997th 2450490th
  1647. 1997TH 1997th 2450490th
  1648. 1997TH 1997th 2450490th
  1649. 1997TH 1997th 2450610th
  1650. 1997TH 1997th 2450490th
  1651. 1997TH 1997th 2450491st
  1652. 1997TH 1997th 2450492nd
  1653. 1997TH 1997th 2450493rd
  1654. 1997TH 1997th 2450494th
  1655. 1997TH 1997th 2450495th
  1656. 1997TH 1997th 2450496th
  1657. 0097TH 0097th 1686042nd
  1658. 0097TH 0097th 1756536th
  1659. 0597TH 0597th 1939157th
  1660. 1097TH 1097th 2121778th
  1661. 1697TH 1697th 2340924th
  1662. 1797TH 1797th 2377448th
  1663. 1897TH 1897th 2413972nd
  1664. 1997TH 1997th 2450496th
  1665. 2097TH 2097th 2487021st
  1666. 1996TH 1996th 2450142nd
  1667. 1996TH 1996th 2450143rd
  1668. 1996TH 1996th 2450144th
  1669. 1996TH 1996th 2450448th
  1670. 1996TH 1996th 2450449th
  1671. 1997TH 1997th 2450450th
  1672. 1997TH 1997th 2450508th
  1673. 1997TH 1997th 2450509th
  1674. 1997TH 1997th 2450813th
  1675. 1997TH 1997th 2450814th
  1676. 1999TH 1999th 2451544th
  1677. 2000TH 2000th 2451545th
  1678. 2000TH 2000th 2451910th
  1679. 2001ST 2001st 2451911th
  1680. (65 rows)
  1681. SELECT to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm')
  1682. FROM TIMESTAMP_TBL;
  1683. to_char
  1684. ---------------------------------------------------------------------
  1685. 1970 A.D. 1970 a.d. 1970 ad 12:00:00 A.M. 12:00:00 a.m. 12:00:00 am
  1686. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1687. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1688. 1997 A.D. 1997 a.d. 1997 ad 05:32:02 P.M. 05:32:02 p.m. 05:32:02 pm
  1689. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1690. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1691. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1692. 1997 A.D. 1997 a.d. 1997 ad 12:00:00 A.M. 12:00:00 a.m. 12:00:00 am
  1693. 1997 A.D. 1997 a.d. 1997 ad 03:04:05 A.M. 03:04:05 a.m. 03:04:05 am
  1694. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1695. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1696. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1697. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1698. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1699. 2001 A.D. 2001 a.d. 2001 ad 06:19:20 P.M. 06:19:20 p.m. 06:19:20 pm
  1700. 2000 A.D. 2000 a.d. 2000 ad 08:14:01 A.M. 08:14:01 a.m. 08:14:01 am
  1701. 2000 A.D. 2000 a.d. 2000 ad 01:14:02 P.M. 01:14:02 p.m. 01:14:02 pm
  1702. 2000 A.D. 2000 a.d. 2000 ad 12:14:03 P.M. 12:14:03 p.m. 12:14:03 pm
  1703. 2000 A.D. 2000 a.d. 2000 ad 03:14:04 A.M. 03:14:04 a.m. 03:14:04 am
  1704. 2000 A.D. 2000 a.d. 2000 ad 02:14:05 A.M. 02:14:05 a.m. 02:14:05 am
  1705. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1706. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1707. 1997 A.D. 1997 a.d. 1997 ad 05:32:00 P.M. 05:32:00 p.m. 05:32:00 pm
  1708. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1709. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1710. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1711. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1712. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1713. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1714. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1715. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1716. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1717. 1997 A.D. 1997 a.d. 1997 ad 06:32:01 P.M. 06:32:01 p.m. 06:32:01 pm
  1718. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1719. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1720. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1721. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1722. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1723. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1724. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1725. 0097 B.C. 0097 b.c. 0097 bc 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1726. 0097 A.D. 0097 a.d. 0097 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1727. 0597 A.D. 0597 a.d. 0597 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1728. 1097 A.D. 1097 a.d. 1097 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1729. 1697 A.D. 1697 a.d. 1697 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1730. 1797 A.D. 1797 a.d. 1797 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1731. 1897 A.D. 1897 a.d. 1897 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1732. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1733. 2097 A.D. 2097 a.d. 2097 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1734. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1735. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1736. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1737. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1738. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1739. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1740. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1741. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1742. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1743. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1744. 1999 A.D. 1999 a.d. 1999 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1745. 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1746. 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1747. 2001 A.D. 2001 a.d. 2001 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1748. (65 rows)
  1749. SELECT to_char(d1, 'IYYY IYY IY I IW IDDD ID')
  1750. FROM TIMESTAMP_TBL;
  1751. to_char
  1752. ------------------------
  1753. 1970 970 70 0 01 004 4
  1754. 1997 997 97 7 07 043 1
  1755. 1997 997 97 7 07 043 1
  1756. 1997 997 97 7 07 043 1
  1757. 1997 997 97 7 07 043 1
  1758. 1997 997 97 7 07 043 1
  1759. 1997 997 97 7 07 043 1
  1760. 1997 997 97 7 01 004 4
  1761. 1997 997 97 7 01 004 4
  1762. 1997 997 97 7 07 043 1
  1763. 1997 997 97 7 07 043 1
  1764. 1997 997 97 7 07 043 1
  1765. 1997 997 97 7 07 043 1
  1766. 1997 997 97 7 24 163 2
  1767. 2001 001 01 1 38 265 6
  1768. 2000 000 00 0 11 073 3
  1769. 2000 000 00 0 11 073 3
  1770. 2000 000 00 0 11 073 3
  1771. 2000 000 00 0 11 073 3
  1772. 2000 000 00 0 11 073 3
  1773. 1997 997 97 7 07 043 1
  1774. 1997 997 97 7 07 043 1
  1775. 1997 997 97 7 07 043 1
  1776. 1997 997 97 7 07 043 1
  1777. 1997 997 97 7 07 043 1
  1778. 1997 997 97 7 07 043 1
  1779. 1997 997 97 7 07 043 1
  1780. 1997 997 97 7 07 043 1
  1781. 1997 997 97 7 07 043 1
  1782. 1997 997 97 7 07 043 1
  1783. 1997 997 97 7 07 043 1
  1784. 1997 997 97 7 07 043 1
  1785. 1997 997 97 7 24 163 2
  1786. 1997 997 97 7 07 043 1
  1787. 1997 997 97 7 07 044 2
  1788. 1997 997 97 7 07 045 3
  1789. 1997 997 97 7 07 046 4
  1790. 1997 997 97 7 07 047 5
  1791. 1997 997 97 7 07 048 6
  1792. 1997 997 97 7 07 049 7
  1793. 0097 097 97 7 07 044 2
  1794. 0097 097 97 7 07 048 6
  1795. 0597 597 97 7 07 046 4
  1796. 1097 097 97 7 07 044 2
  1797. 1697 697 97 7 07 048 6
  1798. 1797 797 97 7 07 046 4
  1799. 1897 897 97 7 07 044 2
  1800. 1997 997 97 7 07 049 7
  1801. 2097 097 97 7 07 048 6
  1802. 1996 996 96 6 09 059 3
  1803. 1996 996 96 6 09 060 4
  1804. 1996 996 96 6 09 061 5
  1805. 1997 997 97 7 01 001 1
  1806. 1997 997 97 7 01 002 2
  1807. 1997 997 97 7 01 003 3
  1808. 1997 997 97 7 09 061 5
  1809. 1997 997 97 7 09 062 6
  1810. 1998 998 98 8 01 002 2
  1811. 1998 998 98 8 01 003 3
  1812. 1999 999 99 9 52 362 5
  1813. 1999 999 99 9 52 363 6
  1814. 2000 000 00 0 52 364 7
  1815. 2001 001 01 1 01 001 1
  1816. (65 rows)
  1817. SELECT to_char(d1, 'FMIYYY FMIYY FMIY FMI FMIW FMIDDD FMID')
  1818. FROM TIMESTAMP_TBL;
  1819. to_char
  1820. ------------------------
  1821. 1970 970 70 0 1 4 4
  1822. 1997 997 97 7 7 43 1
  1823. 1997 997 97 7 7 43 1
  1824. 1997 997 97 7 7 43 1
  1825. 1997 997 97 7 7 43 1
  1826. 1997 997 97 7 7 43 1
  1827. 1997 997 97 7 7 43 1
  1828. 1997 997 97 7 1 4 4
  1829. 1997 997 97 7 1 4 4
  1830. 1997 997 97 7 7 43 1
  1831. 1997 997 97 7 7 43 1
  1832. 1997 997 97 7 7 43 1
  1833. 1997 997 97 7 7 43 1
  1834. 1997 997 97 7 24 163 2
  1835. 2001 1 1 1 38 265 6
  1836. 2000 0 0 0 11 73 3
  1837. 2000 0 0 0 11 73 3
  1838. 2000 0 0 0 11 73 3
  1839. 2000 0 0 0 11 73 3
  1840. 2000 0 0 0 11 73 3
  1841. 1997 997 97 7 7 43 1
  1842. 1997 997 97 7 7 43 1
  1843. 1997 997 97 7 7 43 1
  1844. 1997 997 97 7 7 43 1
  1845. 1997 997 97 7 7 43 1
  1846. 1997 997 97 7 7 43 1
  1847. 1997 997 97 7 7 43 1
  1848. 1997 997 97 7 7 43 1
  1849. 1997 997 97 7 7 43 1
  1850. 1997 997 97 7 7 43 1
  1851. 1997 997 97 7 7 43 1
  1852. 1997 997 97 7 7 43 1
  1853. 1997 997 97 7 24 163 2
  1854. 1997 997 97 7 7 43 1
  1855. 1997 997 97 7 7 44 2
  1856. 1997 997 97 7 7 45 3
  1857. 1997 997 97 7 7 46 4
  1858. 1997 997 97 7 7 47 5
  1859. 1997 997 97 7 7 48 6
  1860. 1997 997 97 7 7 49 7
  1861. 97 97 97 7 7 44 2
  1862. 97 97 97 7 7 48 6
  1863. 597 597 97 7 7 46 4
  1864. 1097 97 97 7 7 44 2
  1865. 1697 697 97 7 7 48 6
  1866. 1797 797 97 7 7 46 4
  1867. 1897 897 97 7 7 44 2
  1868. 1997 997 97 7 7 49 7
  1869. 2097 97 97 7 7 48 6
  1870. 1996 996 96 6 9 59 3
  1871. 1996 996 96 6 9 60 4
  1872. 1996 996 96 6 9 61 5
  1873. 1997 997 97 7 1 1 1
  1874. 1997 997 97 7 1 2 2
  1875. 1997 997 97 7 1 3 3
  1876. 1997 997 97 7 9 61 5
  1877. 1997 997 97 7 9 62 6
  1878. 1998 998 98 8 1 2 2
  1879. 1998 998 98 8 1 3 3
  1880. 1999 999 99 9 52 362 5
  1881. 1999 999 99 9 52 363 6
  1882. 2000 0 0 0 52 364 7
  1883. 2001 1 1 1 1 1 1
  1884. (65 rows)
  1885. SELECT to_char(d, 'FF1 FF2 FF3 FF4 FF5 FF6 ff1 ff2 ff3 ff4 ff5 ff6 MS US')
  1886. FROM (VALUES
  1887. ('2018-11-02 12:34:56'::timestamp),
  1888. ('2018-11-02 12:34:56.78'),
  1889. ('2018-11-02 12:34:56.78901'),
  1890. ('2018-11-02 12:34:56.78901234')
  1891. ) d(d);
  1892. to_char
  1893. --------------------------------------------------------------------
  1894. 0 00 000 0000 00000 000000 0 00 000 0000 00000 000000 000 000000
  1895. 7 78 780 7800 78000 780000 7 78 780 7800 78000 780000 780 780000
  1896. 7 78 789 7890 78901 789010 7 78 789 7890 78901 789010 789 789010
  1897. 7 78 789 7890 78901 789012 7 78 789 7890 78901 789012 789 789012
  1898. (4 rows)
  1899. -- Roman months, with upper and lower case.
  1900. SELECT i,
  1901. to_char(i * interval '1mon', 'rm'),
  1902. to_char(i * interval '1mon', 'RM')
  1903. FROM generate_series(-13, 13) i;
  1904. i | to_char | to_char
  1905. -----+---------+---------
  1906. -13 | xii | XII
  1907. -12 | i | I
  1908. -11 | ii | II
  1909. -10 | iii | III
  1910. -9 | iv | IV
  1911. -8 | v | V
  1912. -7 | vi | VI
  1913. -6 | vii | VII
  1914. -5 | viii | VIII
  1915. -4 | ix | IX
  1916. -3 | x | X
  1917. -2 | xi | XI
  1918. -1 | xii | XII
  1919. 0 | |
  1920. 1 | i | I
  1921. 2 | ii | II
  1922. 3 | iii | III
  1923. 4 | iv | IV
  1924. 5 | v | V
  1925. 6 | vi | VI
  1926. 7 | vii | VII
  1927. 8 | viii | VIII
  1928. 9 | ix | IX
  1929. 10 | x | X
  1930. 11 | xi | XI
  1931. 12 | xii | XII
  1932. 13 | i | I
  1933. (27 rows)
  1934. -- timestamp numeric fields constructor
  1935. SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887);
  1936. make_timestamp
  1937. ------------------------------
  1938. Sun Dec 28 06:30:45.887 2014
  1939. (1 row)
  1940. SELECT make_timestamp(-44, 3, 15, 12, 30, 15);
  1941. make_timestamp
  1942. -----------------------------
  1943. Fri Mar 15 12:30:15 0044 BC
  1944. (1 row)
  1945. -- should fail
  1946. select make_timestamp(0, 7, 15, 12, 30, 15);
  1947. ERROR: date field value out of range: 0-07-15
  1948. -- generate_series for timestamp
  1949. select * from generate_series('2020-01-01 00:00'::timestamp,
  1950. '2020-01-02 03:00'::timestamp,
  1951. '1 hour'::interval);
  1952. generate_series
  1953. --------------------------
  1954. Wed Jan 01 00:00:00 2020
  1955. Wed Jan 01 01:00:00 2020
  1956. Wed Jan 01 02:00:00 2020
  1957. Wed Jan 01 03:00:00 2020
  1958. Wed Jan 01 04:00:00 2020
  1959. Wed Jan 01 05:00:00 2020
  1960. Wed Jan 01 06:00:00 2020
  1961. Wed Jan 01 07:00:00 2020
  1962. Wed Jan 01 08:00:00 2020
  1963. Wed Jan 01 09:00:00 2020
  1964. Wed Jan 01 10:00:00 2020
  1965. Wed Jan 01 11:00:00 2020
  1966. Wed Jan 01 12:00:00 2020
  1967. Wed Jan 01 13:00:00 2020
  1968. Wed Jan 01 14:00:00 2020
  1969. Wed Jan 01 15:00:00 2020
  1970. Wed Jan 01 16:00:00 2020
  1971. Wed Jan 01 17:00:00 2020
  1972. Wed Jan 01 18:00:00 2020
  1973. Wed Jan 01 19:00:00 2020
  1974. Wed Jan 01 20:00:00 2020
  1975. Wed Jan 01 21:00:00 2020
  1976. Wed Jan 01 22:00:00 2020
  1977. Wed Jan 01 23:00:00 2020
  1978. Thu Jan 02 00:00:00 2020
  1979. Thu Jan 02 01:00:00 2020
  1980. Thu Jan 02 02:00:00 2020
  1981. Thu Jan 02 03:00:00 2020
  1982. (28 rows)
  1983. -- the LIMIT should allow this to terminate in a reasonable amount of time
  1984. -- (but that unfortunately doesn't work yet for SELECT * FROM ...)
  1985. select generate_series('2022-01-01 00:00'::timestamp,
  1986. 'infinity'::timestamp,
  1987. '1 month'::interval) limit 10;
  1988. generate_series
  1989. --------------------------
  1990. Sat Jan 01 00:00:00 2022
  1991. Tue Feb 01 00:00:00 2022
  1992. Tue Mar 01 00:00:00 2022
  1993. Fri Apr 01 00:00:00 2022
  1994. Sun May 01 00:00:00 2022
  1995. Wed Jun 01 00:00:00 2022
  1996. Fri Jul 01 00:00:00 2022
  1997. Mon Aug 01 00:00:00 2022
  1998. Thu Sep 01 00:00:00 2022
  1999. Sat Oct 01 00:00:00 2022
  2000. (10 rows)
  2001. -- errors
  2002. select * from generate_series('2020-01-01 00:00'::timestamp,
  2003. '2020-01-02 03:00'::timestamp,
  2004. '0 hour'::interval);
  2005. ERROR: step size cannot equal zero