timestamptz.out 120 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991
  1. --
  2. -- TIMESTAMPTZ
  3. --
  4. CREATE TABLE TIMESTAMPTZ_TBL (d1 timestamp(2) with 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 TIMESTAMPTZ_TBL VALUES ('today');
  12. INSERT INTO TIMESTAMPTZ_TBL VALUES ('yesterday');
  13. INSERT INTO TIMESTAMPTZ_TBL VALUES ('tomorrow');
  14. INSERT INTO TIMESTAMPTZ_TBL VALUES ('tomorrow EST');
  15. INSERT INTO TIMESTAMPTZ_TBL VALUES ('tomorrow zulu');
  16. SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'today';
  17. one
  18. -----
  19. 1
  20. (1 row)
  21. SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'tomorrow';
  22. one
  23. -----
  24. 1
  25. (1 row)
  26. SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'yesterday';
  27. one
  28. -----
  29. 1
  30. (1 row)
  31. SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'tomorrow EST';
  32. one
  33. -----
  34. 1
  35. (1 row)
  36. SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'tomorrow zulu';
  37. one
  38. -----
  39. 1
  40. (1 row)
  41. COMMIT;
  42. DELETE FROM TIMESTAMPTZ_TBL;
  43. -- Verify that 'now' *does* change over a reasonable interval such as 100 msec,
  44. -- and that it doesn't change over the same interval within a transaction block
  45. INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');
  46. SELECT pg_sleep(0.1);
  47. pg_sleep
  48. ----------
  49. (1 row)
  50. BEGIN;
  51. INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');
  52. SELECT pg_sleep(0.1);
  53. pg_sleep
  54. ----------
  55. (1 row)
  56. INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');
  57. SELECT pg_sleep(0.1);
  58. pg_sleep
  59. ----------
  60. (1 row)
  61. SELECT count(*) AS two FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp(2) with time zone 'now';
  62. two
  63. -----
  64. 2
  65. (1 row)
  66. SELECT count(d1) AS three, count(DISTINCT d1) AS two FROM TIMESTAMPTZ_TBL;
  67. three | two
  68. -------+-----
  69. 3 | 2
  70. (1 row)
  71. COMMIT;
  72. TRUNCATE TIMESTAMPTZ_TBL;
  73. -- Special values
  74. INSERT INTO TIMESTAMPTZ_TBL VALUES ('-infinity');
  75. INSERT INTO TIMESTAMPTZ_TBL VALUES ('infinity');
  76. INSERT INTO TIMESTAMPTZ_TBL VALUES ('epoch');
  77. -- Postgres v6.0 standard output format
  78. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
  79. -- Variations on Postgres v6.1 standard output format
  80. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST');
  81. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST');
  82. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.4 1997 PST');
  83. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.5 1997 PST');
  84. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.6 1997 PST');
  85. -- ISO 8601 format
  86. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-01-02');
  87. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-01-02 03:04:05');
  88. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01-08');
  89. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01-0800');
  90. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01 -08:00');
  91. INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 -0800');
  92. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-06-10 17:32:01 -07:00');
  93. INSERT INTO TIMESTAMPTZ_TBL VALUES ('2001-09-22T18:19:20');
  94. -- POSIX format (note that the timezone abbrev is just decoration here)
  95. INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 08:14:01 GMT+8');
  96. INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 13:14:02 GMT-1');
  97. INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 12:14:03 GMT-2');
  98. INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 03:14:04 PST+8');
  99. INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 02:14:05 MST+7:00');
  100. -- Variations for acceptable input formats
  101. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997 -0800');
  102. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997');
  103. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 5:32PM 1997');
  104. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997/02/10 17:32:01-0800');
  105. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01 PST');
  106. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb-10-1997 17:32:01 PST');
  107. INSERT INTO TIMESTAMPTZ_TBL VALUES ('02-10-1997 17:32:01 PST');
  108. INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 PST');
  109. set datestyle to ymd;
  110. INSERT INTO TIMESTAMPTZ_TBL VALUES ('97FEB10 5:32:01PM UTC');
  111. INSERT INTO TIMESTAMPTZ_TBL VALUES ('97/02/10 17:32:01 UTC');
  112. reset datestyle;
  113. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997.041 17:32:01 UTC');
  114. -- timestamps at different timezones
  115. INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 America/New_York');
  116. SELECT '19970210 173201' AT TIME ZONE 'America/New_York';
  117. timezone
  118. --------------------------
  119. Mon Feb 10 20:32:01 1997
  120. (1 row)
  121. INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America/New_York');
  122. SELECT '19970710 173201' AT TIME ZONE 'America/New_York';
  123. timezone
  124. --------------------------
  125. Thu Jul 10 20:32:01 1997
  126. (1 row)
  127. INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America/Does_not_exist');
  128. ERROR: time zone "america/does_not_exist" not recognized
  129. LINE 1: INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America...
  130. ^
  131. SELECT '19970710 173201' AT TIME ZONE 'America/Does_not_exist';
  132. ERROR: time zone "America/Does_not_exist" not recognized
  133. -- Daylight saving time for timestamps beyond 32-bit time_t range.
  134. SELECT '20500710 173201 Europe/Helsinki'::timestamptz; -- DST
  135. timestamptz
  136. ------------------------------
  137. Sun Jul 10 07:32:01 2050 PDT
  138. (1 row)
  139. SELECT '20500110 173201 Europe/Helsinki'::timestamptz; -- non-DST
  140. timestamptz
  141. ------------------------------
  142. Mon Jan 10 07:32:01 2050 PST
  143. (1 row)
  144. SELECT '205000-07-10 17:32:01 Europe/Helsinki'::timestamptz; -- DST
  145. timestamptz
  146. --------------------------------
  147. Thu Jul 10 07:32:01 205000 PDT
  148. (1 row)
  149. SELECT '205000-01-10 17:32:01 Europe/Helsinki'::timestamptz; -- non-DST
  150. timestamptz
  151. --------------------------------
  152. Fri Jan 10 07:32:01 205000 PST
  153. (1 row)
  154. -- Check date conversion and date arithmetic
  155. INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-06-10 18:32:01 PDT');
  156. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997');
  157. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 11 17:32:01 1997');
  158. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 12 17:32:01 1997');
  159. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 13 17:32:01 1997');
  160. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 14 17:32:01 1997');
  161. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 15 17:32:01 1997');
  162. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1997');
  163. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 0097 BC');
  164. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 0097');
  165. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 0597');
  166. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1097');
  167. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1697');
  168. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1797');
  169. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1897');
  170. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1997');
  171. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 2097');
  172. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 28 17:32:01 1996');
  173. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 29 17:32:01 1996');
  174. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mar 01 17:32:01 1996');
  175. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 30 17:32:01 1996');
  176. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1996');
  177. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 1997');
  178. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 28 17:32:01 1997');
  179. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 29 17:32:01 1997');
  180. ERROR: date/time field value out of range: "Feb 29 17:32:01 1997"
  181. LINE 1: INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 29 17:32:01 1997');
  182. ^
  183. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mar 01 17:32:01 1997');
  184. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 30 17:32:01 1997');
  185. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1997');
  186. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1999');
  187. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 2000');
  188. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 2000');
  189. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 2001');
  190. -- Currently unsupported syntax and ranges
  191. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 -0097');
  192. ERROR: time zone displacement out of range: "Feb 16 17:32:01 -0097"
  193. LINE 1: INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 -0097')...
  194. ^
  195. INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 5097 BC');
  196. ERROR: timestamp out of range: "Feb 16 17:32:01 5097 BC"
  197. LINE 1: INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 5097 BC...
  198. ^
  199. -- Alternative field order that we've historically supported (sort of)
  200. -- with regular and POSIXy timezone specs
  201. SELECT 'Wed Jul 11 10:51:14 America/New_York 2001'::timestamptz;
  202. timestamptz
  203. ------------------------------
  204. Wed Jul 11 07:51:14 2001 PDT
  205. (1 row)
  206. SELECT 'Wed Jul 11 10:51:14 GMT-4 2001'::timestamptz;
  207. timestamptz
  208. ------------------------------
  209. Tue Jul 10 23:51:14 2001 PDT
  210. (1 row)
  211. SELECT 'Wed Jul 11 10:51:14 GMT+4 2001'::timestamptz;
  212. timestamptz
  213. ------------------------------
  214. Wed Jul 11 07:51:14 2001 PDT
  215. (1 row)
  216. SELECT 'Wed Jul 11 10:51:14 PST-03:00 2001'::timestamptz;
  217. timestamptz
  218. ------------------------------
  219. Wed Jul 11 00:51:14 2001 PDT
  220. (1 row)
  221. SELECT 'Wed Jul 11 10:51:14 PST+03:00 2001'::timestamptz;
  222. timestamptz
  223. ------------------------------
  224. Wed Jul 11 06:51:14 2001 PDT
  225. (1 row)
  226. SELECT d1 FROM TIMESTAMPTZ_TBL;
  227. d1
  228. ---------------------------------
  229. -infinity
  230. infinity
  231. Wed Dec 31 16:00:00 1969 PST
  232. Mon Feb 10 17:32:01 1997 PST
  233. Mon Feb 10 17:32:01 1997 PST
  234. Mon Feb 10 17:32:02 1997 PST
  235. Mon Feb 10 17:32:01.4 1997 PST
  236. Mon Feb 10 17:32:01.5 1997 PST
  237. Mon Feb 10 17:32:01.6 1997 PST
  238. Thu Jan 02 00:00:00 1997 PST
  239. Thu Jan 02 03:04:05 1997 PST
  240. Mon Feb 10 17:32:01 1997 PST
  241. Mon Feb 10 17:32:01 1997 PST
  242. Mon Feb 10 17:32:01 1997 PST
  243. Mon Feb 10 17:32:01 1997 PST
  244. Tue Jun 10 17:32:01 1997 PDT
  245. Sat Sep 22 18:19:20 2001 PDT
  246. Wed Mar 15 08:14:01 2000 PST
  247. Wed Mar 15 04:14:02 2000 PST
  248. Wed Mar 15 02:14:03 2000 PST
  249. Wed Mar 15 03:14:04 2000 PST
  250. Wed Mar 15 01:14:05 2000 PST
  251. Mon Feb 10 17:32:01 1997 PST
  252. Mon Feb 10 17:32:01 1997 PST
  253. Mon Feb 10 17:32:00 1997 PST
  254. Mon Feb 10 17:32:01 1997 PST
  255. Mon Feb 10 17:32:01 1997 PST
  256. Mon Feb 10 17:32:01 1997 PST
  257. Mon Feb 10 17:32:01 1997 PST
  258. Mon Feb 10 17:32:01 1997 PST
  259. Mon Feb 10 09:32:01 1997 PST
  260. Mon Feb 10 09:32:01 1997 PST
  261. Mon Feb 10 09:32:01 1997 PST
  262. Mon Feb 10 14:32:01 1997 PST
  263. Thu Jul 10 14:32:01 1997 PDT
  264. Tue Jun 10 18:32:01 1997 PDT
  265. Mon Feb 10 17:32:01 1997 PST
  266. Tue Feb 11 17:32:01 1997 PST
  267. Wed Feb 12 17:32:01 1997 PST
  268. Thu Feb 13 17:32:01 1997 PST
  269. Fri Feb 14 17:32:01 1997 PST
  270. Sat Feb 15 17:32:01 1997 PST
  271. Sun Feb 16 17:32:01 1997 PST
  272. Tue Feb 16 17:32:01 0097 PST BC
  273. Sat Feb 16 17:32:01 0097 PST
  274. Thu Feb 16 17:32:01 0597 PST
  275. Tue Feb 16 17:32:01 1097 PST
  276. Sat Feb 16 17:32:01 1697 PST
  277. Thu Feb 16 17:32:01 1797 PST
  278. Tue Feb 16 17:32:01 1897 PST
  279. Sun Feb 16 17:32:01 1997 PST
  280. Sat Feb 16 17:32:01 2097 PST
  281. Wed Feb 28 17:32:01 1996 PST
  282. Thu Feb 29 17:32:01 1996 PST
  283. Fri Mar 01 17:32:01 1996 PST
  284. Mon Dec 30 17:32:01 1996 PST
  285. Tue Dec 31 17:32:01 1996 PST
  286. Wed Jan 01 17:32:01 1997 PST
  287. Fri Feb 28 17:32:01 1997 PST
  288. Sat Mar 01 17:32:01 1997 PST
  289. Tue Dec 30 17:32:01 1997 PST
  290. Wed Dec 31 17:32:01 1997 PST
  291. Fri Dec 31 17:32:01 1999 PST
  292. Sat Jan 01 17:32:01 2000 PST
  293. Sun Dec 31 17:32:01 2000 PST
  294. Mon Jan 01 17:32:01 2001 PST
  295. (66 rows)
  296. -- Check behavior at the boundaries of the timestamp range
  297. SELECT '4714-11-24 00:00:00+00 BC'::timestamptz;
  298. timestamptz
  299. ---------------------------------
  300. Sun Nov 23 16:00:00 4714 PST BC
  301. (1 row)
  302. SELECT '4714-11-23 16:00:00-08 BC'::timestamptz;
  303. timestamptz
  304. ---------------------------------
  305. Sun Nov 23 16:00:00 4714 PST BC
  306. (1 row)
  307. SELECT 'Sun Nov 23 16:00:00 4714 PST BC'::timestamptz;
  308. timestamptz
  309. ---------------------------------
  310. Sun Nov 23 16:00:00 4714 PST BC
  311. (1 row)
  312. SELECT '4714-11-23 23:59:59+00 BC'::timestamptz; -- out of range
  313. ERROR: timestamp out of range: "4714-11-23 23:59:59+00 BC"
  314. LINE 1: SELECT '4714-11-23 23:59:59+00 BC'::timestamptz;
  315. ^
  316. SELECT '294276-12-31 23:59:59+00'::timestamptz;
  317. timestamptz
  318. --------------------------------
  319. Sun Dec 31 15:59:59 294276 PST
  320. (1 row)
  321. SELECT '294276-12-31 15:59:59-08'::timestamptz;
  322. timestamptz
  323. --------------------------------
  324. Sun Dec 31 15:59:59 294276 PST
  325. (1 row)
  326. SELECT '294277-01-01 00:00:00+00'::timestamptz; -- out of range
  327. ERROR: timestamp out of range: "294277-01-01 00:00:00+00"
  328. LINE 1: SELECT '294277-01-01 00:00:00+00'::timestamptz;
  329. ^
  330. SELECT '294277-12-31 16:00:00-08'::timestamptz; -- out of range
  331. ERROR: timestamp out of range: "294277-12-31 16:00:00-08"
  332. LINE 1: SELECT '294277-12-31 16:00:00-08'::timestamptz;
  333. ^
  334. -- Demonstrate functions and operators
  335. SELECT d1 FROM TIMESTAMPTZ_TBL
  336. WHERE d1 > timestamp with time zone '1997-01-02';
  337. d1
  338. --------------------------------
  339. infinity
  340. Mon Feb 10 17:32:01 1997 PST
  341. Mon Feb 10 17:32:01 1997 PST
  342. Mon Feb 10 17:32:02 1997 PST
  343. Mon Feb 10 17:32:01.4 1997 PST
  344. Mon Feb 10 17:32:01.5 1997 PST
  345. Mon Feb 10 17:32:01.6 1997 PST
  346. Thu Jan 02 03:04:05 1997 PST
  347. Mon Feb 10 17:32:01 1997 PST
  348. Mon Feb 10 17:32:01 1997 PST
  349. Mon Feb 10 17:32:01 1997 PST
  350. Mon Feb 10 17:32:01 1997 PST
  351. Tue Jun 10 17:32:01 1997 PDT
  352. Sat Sep 22 18:19:20 2001 PDT
  353. Wed Mar 15 08:14:01 2000 PST
  354. Wed Mar 15 04:14:02 2000 PST
  355. Wed Mar 15 02:14:03 2000 PST
  356. Wed Mar 15 03:14:04 2000 PST
  357. Wed Mar 15 01:14:05 2000 PST
  358. Mon Feb 10 17:32:01 1997 PST
  359. Mon Feb 10 17:32:01 1997 PST
  360. Mon Feb 10 17:32:00 1997 PST
  361. Mon Feb 10 17:32:01 1997 PST
  362. Mon Feb 10 17:32:01 1997 PST
  363. Mon Feb 10 17:32:01 1997 PST
  364. Mon Feb 10 17:32:01 1997 PST
  365. Mon Feb 10 17:32:01 1997 PST
  366. Mon Feb 10 09:32:01 1997 PST
  367. Mon Feb 10 09:32:01 1997 PST
  368. Mon Feb 10 09:32:01 1997 PST
  369. Mon Feb 10 14:32:01 1997 PST
  370. Thu Jul 10 14:32:01 1997 PDT
  371. Tue Jun 10 18:32:01 1997 PDT
  372. Mon Feb 10 17:32:01 1997 PST
  373. Tue Feb 11 17:32:01 1997 PST
  374. Wed Feb 12 17:32:01 1997 PST
  375. Thu Feb 13 17:32:01 1997 PST
  376. Fri Feb 14 17:32:01 1997 PST
  377. Sat Feb 15 17:32:01 1997 PST
  378. Sun Feb 16 17:32:01 1997 PST
  379. Sun Feb 16 17:32:01 1997 PST
  380. Sat Feb 16 17:32:01 2097 PST
  381. Fri Feb 28 17:32:01 1997 PST
  382. Sat Mar 01 17:32:01 1997 PST
  383. Tue Dec 30 17:32:01 1997 PST
  384. Wed Dec 31 17:32:01 1997 PST
  385. Fri Dec 31 17:32:01 1999 PST
  386. Sat Jan 01 17:32:01 2000 PST
  387. Sun Dec 31 17:32:01 2000 PST
  388. Mon Jan 01 17:32:01 2001 PST
  389. (50 rows)
  390. SELECT d1 FROM TIMESTAMPTZ_TBL
  391. WHERE d1 < timestamp with time zone '1997-01-02';
  392. d1
  393. ---------------------------------
  394. -infinity
  395. Wed Dec 31 16:00:00 1969 PST
  396. Tue Feb 16 17:32:01 0097 PST BC
  397. Sat Feb 16 17:32:01 0097 PST
  398. Thu Feb 16 17:32:01 0597 PST
  399. Tue Feb 16 17:32:01 1097 PST
  400. Sat Feb 16 17:32:01 1697 PST
  401. Thu Feb 16 17:32:01 1797 PST
  402. Tue Feb 16 17:32:01 1897 PST
  403. Wed Feb 28 17:32:01 1996 PST
  404. Thu Feb 29 17:32:01 1996 PST
  405. Fri Mar 01 17:32:01 1996 PST
  406. Mon Dec 30 17:32:01 1996 PST
  407. Tue Dec 31 17:32:01 1996 PST
  408. Wed Jan 01 17:32:01 1997 PST
  409. (15 rows)
  410. SELECT d1 FROM TIMESTAMPTZ_TBL
  411. WHERE d1 = timestamp with time zone '1997-01-02';
  412. d1
  413. ------------------------------
  414. Thu Jan 02 00:00:00 1997 PST
  415. (1 row)
  416. SELECT d1 FROM TIMESTAMPTZ_TBL
  417. WHERE d1 != timestamp with time zone '1997-01-02';
  418. d1
  419. ---------------------------------
  420. -infinity
  421. infinity
  422. Wed Dec 31 16:00:00 1969 PST
  423. Mon Feb 10 17:32:01 1997 PST
  424. Mon Feb 10 17:32:01 1997 PST
  425. Mon Feb 10 17:32:02 1997 PST
  426. Mon Feb 10 17:32:01.4 1997 PST
  427. Mon Feb 10 17:32:01.5 1997 PST
  428. Mon Feb 10 17:32:01.6 1997 PST
  429. Thu Jan 02 03:04:05 1997 PST
  430. Mon Feb 10 17:32:01 1997 PST
  431. Mon Feb 10 17:32:01 1997 PST
  432. Mon Feb 10 17:32:01 1997 PST
  433. Mon Feb 10 17:32:01 1997 PST
  434. Tue Jun 10 17:32:01 1997 PDT
  435. Sat Sep 22 18:19:20 2001 PDT
  436. Wed Mar 15 08:14:01 2000 PST
  437. Wed Mar 15 04:14:02 2000 PST
  438. Wed Mar 15 02:14:03 2000 PST
  439. Wed Mar 15 03:14:04 2000 PST
  440. Wed Mar 15 01:14:05 2000 PST
  441. Mon Feb 10 17:32:01 1997 PST
  442. Mon Feb 10 17:32:01 1997 PST
  443. Mon Feb 10 17:32:00 1997 PST
  444. Mon Feb 10 17:32:01 1997 PST
  445. Mon Feb 10 17:32:01 1997 PST
  446. Mon Feb 10 17:32:01 1997 PST
  447. Mon Feb 10 17:32:01 1997 PST
  448. Mon Feb 10 17:32:01 1997 PST
  449. Mon Feb 10 09:32:01 1997 PST
  450. Mon Feb 10 09:32:01 1997 PST
  451. Mon Feb 10 09:32:01 1997 PST
  452. Mon Feb 10 14:32:01 1997 PST
  453. Thu Jul 10 14:32:01 1997 PDT
  454. Tue Jun 10 18:32:01 1997 PDT
  455. Mon Feb 10 17:32:01 1997 PST
  456. Tue Feb 11 17:32:01 1997 PST
  457. Wed Feb 12 17:32:01 1997 PST
  458. Thu Feb 13 17:32:01 1997 PST
  459. Fri Feb 14 17:32:01 1997 PST
  460. Sat Feb 15 17:32:01 1997 PST
  461. Sun Feb 16 17:32:01 1997 PST
  462. Tue Feb 16 17:32:01 0097 PST BC
  463. Sat Feb 16 17:32:01 0097 PST
  464. Thu Feb 16 17:32:01 0597 PST
  465. Tue Feb 16 17:32:01 1097 PST
  466. Sat Feb 16 17:32:01 1697 PST
  467. Thu Feb 16 17:32:01 1797 PST
  468. Tue Feb 16 17:32:01 1897 PST
  469. Sun Feb 16 17:32:01 1997 PST
  470. Sat Feb 16 17:32:01 2097 PST
  471. Wed Feb 28 17:32:01 1996 PST
  472. Thu Feb 29 17:32:01 1996 PST
  473. Fri Mar 01 17:32:01 1996 PST
  474. Mon Dec 30 17:32:01 1996 PST
  475. Tue Dec 31 17:32:01 1996 PST
  476. Wed Jan 01 17:32:01 1997 PST
  477. Fri Feb 28 17:32:01 1997 PST
  478. Sat Mar 01 17:32:01 1997 PST
  479. Tue Dec 30 17:32:01 1997 PST
  480. Wed Dec 31 17:32:01 1997 PST
  481. Fri Dec 31 17:32:01 1999 PST
  482. Sat Jan 01 17:32:01 2000 PST
  483. Sun Dec 31 17:32:01 2000 PST
  484. Mon Jan 01 17:32:01 2001 PST
  485. (65 rows)
  486. SELECT d1 FROM TIMESTAMPTZ_TBL
  487. WHERE d1 <= timestamp with time zone '1997-01-02';
  488. d1
  489. ---------------------------------
  490. -infinity
  491. Wed Dec 31 16:00:00 1969 PST
  492. Thu Jan 02 00:00:00 1997 PST
  493. Tue Feb 16 17:32:01 0097 PST BC
  494. Sat Feb 16 17:32:01 0097 PST
  495. Thu Feb 16 17:32:01 0597 PST
  496. Tue Feb 16 17:32:01 1097 PST
  497. Sat Feb 16 17:32:01 1697 PST
  498. Thu Feb 16 17:32:01 1797 PST
  499. Tue Feb 16 17:32:01 1897 PST
  500. Wed Feb 28 17:32:01 1996 PST
  501. Thu Feb 29 17:32:01 1996 PST
  502. Fri Mar 01 17:32:01 1996 PST
  503. Mon Dec 30 17:32:01 1996 PST
  504. Tue Dec 31 17:32:01 1996 PST
  505. Wed Jan 01 17:32:01 1997 PST
  506. (16 rows)
  507. SELECT d1 FROM TIMESTAMPTZ_TBL
  508. WHERE d1 >= timestamp with time zone '1997-01-02';
  509. d1
  510. --------------------------------
  511. infinity
  512. Mon Feb 10 17:32:01 1997 PST
  513. Mon Feb 10 17:32:01 1997 PST
  514. Mon Feb 10 17:32:02 1997 PST
  515. Mon Feb 10 17:32:01.4 1997 PST
  516. Mon Feb 10 17:32:01.5 1997 PST
  517. Mon Feb 10 17:32:01.6 1997 PST
  518. Thu Jan 02 00:00:00 1997 PST
  519. Thu Jan 02 03:04:05 1997 PST
  520. Mon Feb 10 17:32:01 1997 PST
  521. Mon Feb 10 17:32:01 1997 PST
  522. Mon Feb 10 17:32:01 1997 PST
  523. Mon Feb 10 17:32:01 1997 PST
  524. Tue Jun 10 17:32:01 1997 PDT
  525. Sat Sep 22 18:19:20 2001 PDT
  526. Wed Mar 15 08:14:01 2000 PST
  527. Wed Mar 15 04:14:02 2000 PST
  528. Wed Mar 15 02:14:03 2000 PST
  529. Wed Mar 15 03:14:04 2000 PST
  530. Wed Mar 15 01:14:05 2000 PST
  531. Mon Feb 10 17:32:01 1997 PST
  532. Mon Feb 10 17:32:01 1997 PST
  533. Mon Feb 10 17:32:00 1997 PST
  534. Mon Feb 10 17:32:01 1997 PST
  535. Mon Feb 10 17:32:01 1997 PST
  536. Mon Feb 10 17:32:01 1997 PST
  537. Mon Feb 10 17:32:01 1997 PST
  538. Mon Feb 10 17:32:01 1997 PST
  539. Mon Feb 10 09:32:01 1997 PST
  540. Mon Feb 10 09:32:01 1997 PST
  541. Mon Feb 10 09:32:01 1997 PST
  542. Mon Feb 10 14:32:01 1997 PST
  543. Thu Jul 10 14:32:01 1997 PDT
  544. Tue Jun 10 18:32:01 1997 PDT
  545. Mon Feb 10 17:32:01 1997 PST
  546. Tue Feb 11 17:32:01 1997 PST
  547. Wed Feb 12 17:32:01 1997 PST
  548. Thu Feb 13 17:32:01 1997 PST
  549. Fri Feb 14 17:32:01 1997 PST
  550. Sat Feb 15 17:32:01 1997 PST
  551. Sun Feb 16 17:32:01 1997 PST
  552. Sun Feb 16 17:32:01 1997 PST
  553. Sat Feb 16 17:32:01 2097 PST
  554. Fri Feb 28 17:32:01 1997 PST
  555. Sat Mar 01 17:32:01 1997 PST
  556. Tue Dec 30 17:32:01 1997 PST
  557. Wed Dec 31 17:32:01 1997 PST
  558. Fri Dec 31 17:32:01 1999 PST
  559. Sat Jan 01 17:32:01 2000 PST
  560. Sun Dec 31 17:32:01 2000 PST
  561. Mon Jan 01 17:32:01 2001 PST
  562. (51 rows)
  563. SELECT d1 - timestamp with time zone '1997-01-02' AS diff
  564. FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
  565. diff
  566. ----------------------------------------
  567. @ 9863 days 8 hours ago
  568. @ 39 days 17 hours 32 mins 1 sec
  569. @ 39 days 17 hours 32 mins 1 sec
  570. @ 39 days 17 hours 32 mins 2 secs
  571. @ 39 days 17 hours 32 mins 1.4 secs
  572. @ 39 days 17 hours 32 mins 1.5 secs
  573. @ 39 days 17 hours 32 mins 1.6 secs
  574. @ 0
  575. @ 3 hours 4 mins 5 secs
  576. @ 39 days 17 hours 32 mins 1 sec
  577. @ 39 days 17 hours 32 mins 1 sec
  578. @ 39 days 17 hours 32 mins 1 sec
  579. @ 39 days 17 hours 32 mins 1 sec
  580. @ 159 days 16 hours 32 mins 1 sec
  581. @ 1724 days 17 hours 19 mins 20 secs
  582. @ 1168 days 8 hours 14 mins 1 sec
  583. @ 1168 days 4 hours 14 mins 2 secs
  584. @ 1168 days 2 hours 14 mins 3 secs
  585. @ 1168 days 3 hours 14 mins 4 secs
  586. @ 1168 days 1 hour 14 mins 5 secs
  587. @ 39 days 17 hours 32 mins 1 sec
  588. @ 39 days 17 hours 32 mins 1 sec
  589. @ 39 days 17 hours 32 mins
  590. @ 39 days 17 hours 32 mins 1 sec
  591. @ 39 days 17 hours 32 mins 1 sec
  592. @ 39 days 17 hours 32 mins 1 sec
  593. @ 39 days 17 hours 32 mins 1 sec
  594. @ 39 days 17 hours 32 mins 1 sec
  595. @ 39 days 9 hours 32 mins 1 sec
  596. @ 39 days 9 hours 32 mins 1 sec
  597. @ 39 days 9 hours 32 mins 1 sec
  598. @ 39 days 14 hours 32 mins 1 sec
  599. @ 189 days 13 hours 32 mins 1 sec
  600. @ 159 days 17 hours 32 mins 1 sec
  601. @ 39 days 17 hours 32 mins 1 sec
  602. @ 40 days 17 hours 32 mins 1 sec
  603. @ 41 days 17 hours 32 mins 1 sec
  604. @ 42 days 17 hours 32 mins 1 sec
  605. @ 43 days 17 hours 32 mins 1 sec
  606. @ 44 days 17 hours 32 mins 1 sec
  607. @ 45 days 17 hours 32 mins 1 sec
  608. @ 45 days 17 hours 32 mins 1 sec
  609. @ 308 days 6 hours 27 mins 59 secs ago
  610. @ 307 days 6 hours 27 mins 59 secs ago
  611. @ 306 days 6 hours 27 mins 59 secs ago
  612. @ 2 days 6 hours 27 mins 59 secs ago
  613. @ 1 day 6 hours 27 mins 59 secs ago
  614. @ 6 hours 27 mins 59 secs ago
  615. @ 57 days 17 hours 32 mins 1 sec
  616. @ 58 days 17 hours 32 mins 1 sec
  617. @ 362 days 17 hours 32 mins 1 sec
  618. @ 363 days 17 hours 32 mins 1 sec
  619. @ 1093 days 17 hours 32 mins 1 sec
  620. @ 1094 days 17 hours 32 mins 1 sec
  621. @ 1459 days 17 hours 32 mins 1 sec
  622. @ 1460 days 17 hours 32 mins 1 sec
  623. (56 rows)
  624. SELECT date_trunc( 'week', timestamp with time zone '2004-02-29 15:44:17.71393' ) AS week_trunc;
  625. week_trunc
  626. ------------------------------
  627. Mon Feb 23 00:00:00 2004 PST
  628. (1 row)
  629. SELECT date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'Australia/Sydney') as sydney_trunc; -- zone name
  630. sydney_trunc
  631. ------------------------------
  632. Fri Feb 16 05:00:00 2001 PST
  633. (1 row)
  634. SELECT date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'GMT') as gmt_trunc; -- fixed-offset abbreviation
  635. gmt_trunc
  636. ------------------------------
  637. Thu Feb 15 16:00:00 2001 PST
  638. (1 row)
  639. SELECT date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'VET') as vet_trunc; -- variable-offset abbreviation
  640. vet_trunc
  641. ------------------------------
  642. Thu Feb 15 20:00:00 2001 PST
  643. (1 row)
  644. -- verify date_bin behaves the same as date_trunc for relevant intervals
  645. SELECT
  646. str,
  647. interval,
  648. date_trunc(str, ts, 'Australia/Sydney') = date_bin(interval::interval, ts, timestamp with time zone '2001-01-01+11') AS equal
  649. FROM (
  650. VALUES
  651. ('day', '1 d'),
  652. ('hour', '1 h'),
  653. ('minute', '1 m'),
  654. ('second', '1 s'),
  655. ('millisecond', '1 ms'),
  656. ('microsecond', '1 us')
  657. ) intervals (str, interval),
  658. (VALUES (timestamptz '2020-02-29 15:44:17.71393+00')) ts (ts);
  659. str | interval | equal
  660. -------------+----------+-------
  661. day | 1 d | t
  662. hour | 1 h | t
  663. minute | 1 m | t
  664. second | 1 s | t
  665. millisecond | 1 ms | t
  666. microsecond | 1 us | t
  667. (6 rows)
  668. -- bin timestamps into arbitrary intervals
  669. SELECT
  670. interval,
  671. ts,
  672. origin,
  673. date_bin(interval::interval, ts, origin)
  674. FROM (
  675. VALUES
  676. ('15 days'),
  677. ('2 hours'),
  678. ('1 hour 30 minutes'),
  679. ('15 minutes'),
  680. ('10 seconds'),
  681. ('100 milliseconds'),
  682. ('250 microseconds')
  683. ) intervals (interval),
  684. (VALUES (timestamptz '2020-02-11 15:44:17.71393')) ts (ts),
  685. (VALUES (timestamptz '2001-01-01')) origin (origin);
  686. interval | ts | origin | date_bin
  687. -------------------+------------------------------------+------------------------------+------------------------------------
  688. 15 days | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Thu Feb 06 00:00:00 2020 PST
  689. 2 hours | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 14:00:00 2020 PST
  690. 1 hour 30 minutes | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:00:00 2020 PST
  691. 15 minutes | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:30:00 2020 PST
  692. 10 seconds | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:44:10 2020 PST
  693. 100 milliseconds | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:44:17.7 2020 PST
  694. 250 microseconds | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:44:17.71375 2020 PST
  695. (7 rows)
  696. -- shift bins using the origin parameter:
  697. SELECT date_bin('5 min'::interval, timestamptz '2020-02-01 01:01:01+00', timestamptz '2020-02-01 00:02:30+00');
  698. date_bin
  699. ------------------------------
  700. Fri Jan 31 16:57:30 2020 PST
  701. (1 row)
  702. -- disallow intervals with months or years
  703. SELECT date_bin('5 months'::interval, timestamp with time zone '2020-02-01 01:01:01+00', timestamp with time zone '2001-01-01+00');
  704. ERROR: timestamps cannot be binned into intervals containing months or years
  705. SELECT date_bin('5 years'::interval, timestamp with time zone '2020-02-01 01:01:01+00', timestamp with time zone '2001-01-01+00');
  706. ERROR: timestamps cannot be binned into intervals containing months or years
  707. -- disallow zero intervals
  708. SELECT date_bin('0 days'::interval, timestamp with time zone '1970-01-01 01:00:00+00' , timestamp with time zone '1970-01-01 00:00:00+00');
  709. ERROR: stride must be greater than zero
  710. -- disallow negative intervals
  711. SELECT date_bin('-2 days'::interval, timestamp with time zone '1970-01-01 01:00:00+00' , timestamp with time zone '1970-01-01 00:00:00+00');
  712. ERROR: stride must be greater than zero
  713. -- Test casting within a BETWEEN qualifier
  714. SELECT d1 - timestamp with time zone '1997-01-02' AS diff
  715. FROM TIMESTAMPTZ_TBL
  716. WHERE d1 BETWEEN timestamp with time zone '1902-01-01' AND timestamp with time zone '2038-01-01';
  717. diff
  718. ----------------------------------------
  719. @ 9863 days 8 hours ago
  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 2 secs
  723. @ 39 days 17 hours 32 mins 1.4 secs
  724. @ 39 days 17 hours 32 mins 1.5 secs
  725. @ 39 days 17 hours 32 mins 1.6 secs
  726. @ 0
  727. @ 3 hours 4 mins 5 secs
  728. @ 39 days 17 hours 32 mins 1 sec
  729. @ 39 days 17 hours 32 mins 1 sec
  730. @ 39 days 17 hours 32 mins 1 sec
  731. @ 39 days 17 hours 32 mins 1 sec
  732. @ 159 days 16 hours 32 mins 1 sec
  733. @ 1724 days 17 hours 19 mins 20 secs
  734. @ 1168 days 8 hours 14 mins 1 sec
  735. @ 1168 days 4 hours 14 mins 2 secs
  736. @ 1168 days 2 hours 14 mins 3 secs
  737. @ 1168 days 3 hours 14 mins 4 secs
  738. @ 1168 days 1 hour 14 mins 5 secs
  739. @ 39 days 17 hours 32 mins 1 sec
  740. @ 39 days 17 hours 32 mins 1 sec
  741. @ 39 days 17 hours 32 mins
  742. @ 39 days 17 hours 32 mins 1 sec
  743. @ 39 days 17 hours 32 mins 1 sec
  744. @ 39 days 17 hours 32 mins 1 sec
  745. @ 39 days 17 hours 32 mins 1 sec
  746. @ 39 days 17 hours 32 mins 1 sec
  747. @ 39 days 9 hours 32 mins 1 sec
  748. @ 39 days 9 hours 32 mins 1 sec
  749. @ 39 days 9 hours 32 mins 1 sec
  750. @ 39 days 14 hours 32 mins 1 sec
  751. @ 189 days 13 hours 32 mins 1 sec
  752. @ 159 days 17 hours 32 mins 1 sec
  753. @ 39 days 17 hours 32 mins 1 sec
  754. @ 40 days 17 hours 32 mins 1 sec
  755. @ 41 days 17 hours 32 mins 1 sec
  756. @ 42 days 17 hours 32 mins 1 sec
  757. @ 43 days 17 hours 32 mins 1 sec
  758. @ 44 days 17 hours 32 mins 1 sec
  759. @ 45 days 17 hours 32 mins 1 sec
  760. @ 45 days 17 hours 32 mins 1 sec
  761. @ 308 days 6 hours 27 mins 59 secs ago
  762. @ 307 days 6 hours 27 mins 59 secs ago
  763. @ 306 days 6 hours 27 mins 59 secs ago
  764. @ 2 days 6 hours 27 mins 59 secs ago
  765. @ 1 day 6 hours 27 mins 59 secs ago
  766. @ 6 hours 27 mins 59 secs ago
  767. @ 57 days 17 hours 32 mins 1 sec
  768. @ 58 days 17 hours 32 mins 1 sec
  769. @ 362 days 17 hours 32 mins 1 sec
  770. @ 363 days 17 hours 32 mins 1 sec
  771. @ 1093 days 17 hours 32 mins 1 sec
  772. @ 1094 days 17 hours 32 mins 1 sec
  773. @ 1459 days 17 hours 32 mins 1 sec
  774. @ 1460 days 17 hours 32 mins 1 sec
  775. (56 rows)
  776. -- DATE_PART (timestamptz_part)
  777. SELECT d1 as timestamptz,
  778. date_part( 'year', d1) AS year, date_part( 'month', d1) AS month,
  779. date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour,
  780. date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second
  781. FROM TIMESTAMPTZ_TBL;
  782. timestamptz | year | month | day | hour | minute | second
  783. ---------------------------------+-----------+-------+-----+------+--------+--------
  784. -infinity | -Infinity | | | | |
  785. infinity | Infinity | | | | |
  786. Wed Dec 31 16:00:00 1969 PST | 1969 | 12 | 31 | 16 | 0 | 0
  787. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  788. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  789. Mon Feb 10 17:32:02 1997 PST | 1997 | 2 | 10 | 17 | 32 | 2
  790. Mon Feb 10 17:32:01.4 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.4
  791. Mon Feb 10 17:32:01.5 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.5
  792. Mon Feb 10 17:32:01.6 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.6
  793. Thu Jan 02 00:00:00 1997 PST | 1997 | 1 | 2 | 0 | 0 | 0
  794. Thu Jan 02 03:04:05 1997 PST | 1997 | 1 | 2 | 3 | 4 | 5
  795. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  796. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  797. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  798. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  799. Tue Jun 10 17:32:01 1997 PDT | 1997 | 6 | 10 | 17 | 32 | 1
  800. Sat Sep 22 18:19:20 2001 PDT | 2001 | 9 | 22 | 18 | 19 | 20
  801. Wed Mar 15 08:14:01 2000 PST | 2000 | 3 | 15 | 8 | 14 | 1
  802. Wed Mar 15 04:14:02 2000 PST | 2000 | 3 | 15 | 4 | 14 | 2
  803. Wed Mar 15 02:14:03 2000 PST | 2000 | 3 | 15 | 2 | 14 | 3
  804. Wed Mar 15 03:14:04 2000 PST | 2000 | 3 | 15 | 3 | 14 | 4
  805. Wed Mar 15 01:14:05 2000 PST | 2000 | 3 | 15 | 1 | 14 | 5
  806. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  807. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  808. Mon Feb 10 17:32:00 1997 PST | 1997 | 2 | 10 | 17 | 32 | 0
  809. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  810. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  811. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  812. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  813. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  814. Mon Feb 10 09:32:01 1997 PST | 1997 | 2 | 10 | 9 | 32 | 1
  815. Mon Feb 10 09:32:01 1997 PST | 1997 | 2 | 10 | 9 | 32 | 1
  816. Mon Feb 10 09:32:01 1997 PST | 1997 | 2 | 10 | 9 | 32 | 1
  817. Mon Feb 10 14:32:01 1997 PST | 1997 | 2 | 10 | 14 | 32 | 1
  818. Thu Jul 10 14:32:01 1997 PDT | 1997 | 7 | 10 | 14 | 32 | 1
  819. Tue Jun 10 18:32:01 1997 PDT | 1997 | 6 | 10 | 18 | 32 | 1
  820. Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
  821. Tue Feb 11 17:32:01 1997 PST | 1997 | 2 | 11 | 17 | 32 | 1
  822. Wed Feb 12 17:32:01 1997 PST | 1997 | 2 | 12 | 17 | 32 | 1
  823. Thu Feb 13 17:32:01 1997 PST | 1997 | 2 | 13 | 17 | 32 | 1
  824. Fri Feb 14 17:32:01 1997 PST | 1997 | 2 | 14 | 17 | 32 | 1
  825. Sat Feb 15 17:32:01 1997 PST | 1997 | 2 | 15 | 17 | 32 | 1
  826. Sun Feb 16 17:32:01 1997 PST | 1997 | 2 | 16 | 17 | 32 | 1
  827. Tue Feb 16 17:32:01 0097 PST BC | -97 | 2 | 16 | 17 | 32 | 1
  828. Sat Feb 16 17:32:01 0097 PST | 97 | 2 | 16 | 17 | 32 | 1
  829. Thu Feb 16 17:32:01 0597 PST | 597 | 2 | 16 | 17 | 32 | 1
  830. Tue Feb 16 17:32:01 1097 PST | 1097 | 2 | 16 | 17 | 32 | 1
  831. Sat Feb 16 17:32:01 1697 PST | 1697 | 2 | 16 | 17 | 32 | 1
  832. Thu Feb 16 17:32:01 1797 PST | 1797 | 2 | 16 | 17 | 32 | 1
  833. Tue Feb 16 17:32:01 1897 PST | 1897 | 2 | 16 | 17 | 32 | 1
  834. Sun Feb 16 17:32:01 1997 PST | 1997 | 2 | 16 | 17 | 32 | 1
  835. Sat Feb 16 17:32:01 2097 PST | 2097 | 2 | 16 | 17 | 32 | 1
  836. Wed Feb 28 17:32:01 1996 PST | 1996 | 2 | 28 | 17 | 32 | 1
  837. Thu Feb 29 17:32:01 1996 PST | 1996 | 2 | 29 | 17 | 32 | 1
  838. Fri Mar 01 17:32:01 1996 PST | 1996 | 3 | 1 | 17 | 32 | 1
  839. Mon Dec 30 17:32:01 1996 PST | 1996 | 12 | 30 | 17 | 32 | 1
  840. Tue Dec 31 17:32:01 1996 PST | 1996 | 12 | 31 | 17 | 32 | 1
  841. Wed Jan 01 17:32:01 1997 PST | 1997 | 1 | 1 | 17 | 32 | 1
  842. Fri Feb 28 17:32:01 1997 PST | 1997 | 2 | 28 | 17 | 32 | 1
  843. Sat Mar 01 17:32:01 1997 PST | 1997 | 3 | 1 | 17 | 32 | 1
  844. Tue Dec 30 17:32:01 1997 PST | 1997 | 12 | 30 | 17 | 32 | 1
  845. Wed Dec 31 17:32:01 1997 PST | 1997 | 12 | 31 | 17 | 32 | 1
  846. Fri Dec 31 17:32:01 1999 PST | 1999 | 12 | 31 | 17 | 32 | 1
  847. Sat Jan 01 17:32:01 2000 PST | 2000 | 1 | 1 | 17 | 32 | 1
  848. Sun Dec 31 17:32:01 2000 PST | 2000 | 12 | 31 | 17 | 32 | 1
  849. Mon Jan 01 17:32:01 2001 PST | 2001 | 1 | 1 | 17 | 32 | 1
  850. (66 rows)
  851. SELECT d1 as timestamptz,
  852. date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
  853. date_part( 'usec', d1) AS usec
  854. FROM TIMESTAMPTZ_TBL;
  855. timestamptz | quarter | msec | usec
  856. ---------------------------------+---------+-------+----------
  857. -infinity | | |
  858. infinity | | |
  859. Wed Dec 31 16:00:00 1969 PST | 4 | 0 | 0
  860. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  861. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  862. Mon Feb 10 17:32:02 1997 PST | 1 | 2000 | 2000000
  863. Mon Feb 10 17:32:01.4 1997 PST | 1 | 1400 | 1400000
  864. Mon Feb 10 17:32:01.5 1997 PST | 1 | 1500 | 1500000
  865. Mon Feb 10 17:32:01.6 1997 PST | 1 | 1600 | 1600000
  866. Thu Jan 02 00:00:00 1997 PST | 1 | 0 | 0
  867. Thu Jan 02 03:04:05 1997 PST | 1 | 5000 | 5000000
  868. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  869. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  870. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  871. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  872. Tue Jun 10 17:32:01 1997 PDT | 2 | 1000 | 1000000
  873. Sat Sep 22 18:19:20 2001 PDT | 3 | 20000 | 20000000
  874. Wed Mar 15 08:14:01 2000 PST | 1 | 1000 | 1000000
  875. Wed Mar 15 04:14:02 2000 PST | 1 | 2000 | 2000000
  876. Wed Mar 15 02:14:03 2000 PST | 1 | 3000 | 3000000
  877. Wed Mar 15 03:14:04 2000 PST | 1 | 4000 | 4000000
  878. Wed Mar 15 01:14:05 2000 PST | 1 | 5000 | 5000000
  879. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  880. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  881. Mon Feb 10 17:32:00 1997 PST | 1 | 0 | 0
  882. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  883. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  884. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  885. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  886. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  887. Mon Feb 10 09:32:01 1997 PST | 1 | 1000 | 1000000
  888. Mon Feb 10 09:32:01 1997 PST | 1 | 1000 | 1000000
  889. Mon Feb 10 09:32:01 1997 PST | 1 | 1000 | 1000000
  890. Mon Feb 10 14:32:01 1997 PST | 1 | 1000 | 1000000
  891. Thu Jul 10 14:32:01 1997 PDT | 3 | 1000 | 1000000
  892. Tue Jun 10 18:32:01 1997 PDT | 2 | 1000 | 1000000
  893. Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
  894. Tue Feb 11 17:32:01 1997 PST | 1 | 1000 | 1000000
  895. Wed Feb 12 17:32:01 1997 PST | 1 | 1000 | 1000000
  896. Thu Feb 13 17:32:01 1997 PST | 1 | 1000 | 1000000
  897. Fri Feb 14 17:32:01 1997 PST | 1 | 1000 | 1000000
  898. Sat Feb 15 17:32:01 1997 PST | 1 | 1000 | 1000000
  899. Sun Feb 16 17:32:01 1997 PST | 1 | 1000 | 1000000
  900. Tue Feb 16 17:32:01 0097 PST BC | 1 | 1000 | 1000000
  901. Sat Feb 16 17:32:01 0097 PST | 1 | 1000 | 1000000
  902. Thu Feb 16 17:32:01 0597 PST | 1 | 1000 | 1000000
  903. Tue Feb 16 17:32:01 1097 PST | 1 | 1000 | 1000000
  904. Sat Feb 16 17:32:01 1697 PST | 1 | 1000 | 1000000
  905. Thu Feb 16 17:32:01 1797 PST | 1 | 1000 | 1000000
  906. Tue Feb 16 17:32:01 1897 PST | 1 | 1000 | 1000000
  907. Sun Feb 16 17:32:01 1997 PST | 1 | 1000 | 1000000
  908. Sat Feb 16 17:32:01 2097 PST | 1 | 1000 | 1000000
  909. Wed Feb 28 17:32:01 1996 PST | 1 | 1000 | 1000000
  910. Thu Feb 29 17:32:01 1996 PST | 1 | 1000 | 1000000
  911. Fri Mar 01 17:32:01 1996 PST | 1 | 1000 | 1000000
  912. Mon Dec 30 17:32:01 1996 PST | 4 | 1000 | 1000000
  913. Tue Dec 31 17:32:01 1996 PST | 4 | 1000 | 1000000
  914. Wed Jan 01 17:32:01 1997 PST | 1 | 1000 | 1000000
  915. Fri Feb 28 17:32:01 1997 PST | 1 | 1000 | 1000000
  916. Sat Mar 01 17:32:01 1997 PST | 1 | 1000 | 1000000
  917. Tue Dec 30 17:32:01 1997 PST | 4 | 1000 | 1000000
  918. Wed Dec 31 17:32:01 1997 PST | 4 | 1000 | 1000000
  919. Fri Dec 31 17:32:01 1999 PST | 4 | 1000 | 1000000
  920. Sat Jan 01 17:32:01 2000 PST | 1 | 1000 | 1000000
  921. Sun Dec 31 17:32:01 2000 PST | 4 | 1000 | 1000000
  922. Mon Jan 01 17:32:01 2001 PST | 1 | 1000 | 1000000
  923. (66 rows)
  924. SELECT d1 as timestamptz,
  925. date_part( 'isoyear', d1) AS isoyear, date_part( 'week', d1) AS week,
  926. date_part( 'isodow', d1) AS isodow, date_part( 'dow', d1) AS dow,
  927. date_part( 'doy', d1) AS doy
  928. FROM TIMESTAMPTZ_TBL;
  929. timestamptz | isoyear | week | isodow | dow | doy
  930. ---------------------------------+-----------+------+--------+-----+-----
  931. -infinity | -Infinity | | | |
  932. infinity | Infinity | | | |
  933. Wed Dec 31 16:00:00 1969 PST | 1970 | 1 | 3 | 3 | 365
  934. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  935. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  936. Mon Feb 10 17:32:02 1997 PST | 1997 | 7 | 1 | 1 | 41
  937. Mon Feb 10 17:32:01.4 1997 PST | 1997 | 7 | 1 | 1 | 41
  938. Mon Feb 10 17:32:01.5 1997 PST | 1997 | 7 | 1 | 1 | 41
  939. Mon Feb 10 17:32:01.6 1997 PST | 1997 | 7 | 1 | 1 | 41
  940. Thu Jan 02 00:00:00 1997 PST | 1997 | 1 | 4 | 4 | 2
  941. Thu Jan 02 03:04:05 1997 PST | 1997 | 1 | 4 | 4 | 2
  942. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  943. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  944. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  945. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  946. Tue Jun 10 17:32:01 1997 PDT | 1997 | 24 | 2 | 2 | 161
  947. Sat Sep 22 18:19:20 2001 PDT | 2001 | 38 | 6 | 6 | 265
  948. Wed Mar 15 08:14:01 2000 PST | 2000 | 11 | 3 | 3 | 75
  949. Wed Mar 15 04:14:02 2000 PST | 2000 | 11 | 3 | 3 | 75
  950. Wed Mar 15 02:14:03 2000 PST | 2000 | 11 | 3 | 3 | 75
  951. Wed Mar 15 03:14:04 2000 PST | 2000 | 11 | 3 | 3 | 75
  952. Wed Mar 15 01:14:05 2000 PST | 2000 | 11 | 3 | 3 | 75
  953. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  954. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  955. Mon Feb 10 17:32:00 1997 PST | 1997 | 7 | 1 | 1 | 41
  956. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  957. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  958. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  959. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  960. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  961. Mon Feb 10 09:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  962. Mon Feb 10 09:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  963. Mon Feb 10 09:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  964. Mon Feb 10 14:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  965. Thu Jul 10 14:32:01 1997 PDT | 1997 | 28 | 4 | 4 | 191
  966. Tue Jun 10 18:32:01 1997 PDT | 1997 | 24 | 2 | 2 | 161
  967. Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41
  968. Tue Feb 11 17:32:01 1997 PST | 1997 | 7 | 2 | 2 | 42
  969. Wed Feb 12 17:32:01 1997 PST | 1997 | 7 | 3 | 3 | 43
  970. Thu Feb 13 17:32:01 1997 PST | 1997 | 7 | 4 | 4 | 44
  971. Fri Feb 14 17:32:01 1997 PST | 1997 | 7 | 5 | 5 | 45
  972. Sat Feb 15 17:32:01 1997 PST | 1997 | 7 | 6 | 6 | 46
  973. Sun Feb 16 17:32:01 1997 PST | 1997 | 7 | 7 | 0 | 47
  974. Tue Feb 16 17:32:01 0097 PST BC | -97 | 7 | 2 | 2 | 47
  975. Sat Feb 16 17:32:01 0097 PST | 97 | 7 | 6 | 6 | 47
  976. Thu Feb 16 17:32:01 0597 PST | 597 | 7 | 4 | 4 | 47
  977. Tue Feb 16 17:32:01 1097 PST | 1097 | 7 | 2 | 2 | 47
  978. Sat Feb 16 17:32:01 1697 PST | 1697 | 7 | 6 | 6 | 47
  979. Thu Feb 16 17:32:01 1797 PST | 1797 | 7 | 4 | 4 | 47
  980. Tue Feb 16 17:32:01 1897 PST | 1897 | 7 | 2 | 2 | 47
  981. Sun Feb 16 17:32:01 1997 PST | 1997 | 7 | 7 | 0 | 47
  982. Sat Feb 16 17:32:01 2097 PST | 2097 | 7 | 6 | 6 | 47
  983. Wed Feb 28 17:32:01 1996 PST | 1996 | 9 | 3 | 3 | 59
  984. Thu Feb 29 17:32:01 1996 PST | 1996 | 9 | 4 | 4 | 60
  985. Fri Mar 01 17:32:01 1996 PST | 1996 | 9 | 5 | 5 | 61
  986. Mon Dec 30 17:32:01 1996 PST | 1997 | 1 | 1 | 1 | 365
  987. Tue Dec 31 17:32:01 1996 PST | 1997 | 1 | 2 | 2 | 366
  988. Wed Jan 01 17:32:01 1997 PST | 1997 | 1 | 3 | 3 | 1
  989. Fri Feb 28 17:32:01 1997 PST | 1997 | 9 | 5 | 5 | 59
  990. Sat Mar 01 17:32:01 1997 PST | 1997 | 9 | 6 | 6 | 60
  991. Tue Dec 30 17:32:01 1997 PST | 1998 | 1 | 2 | 2 | 364
  992. Wed Dec 31 17:32:01 1997 PST | 1998 | 1 | 3 | 3 | 365
  993. Fri Dec 31 17:32:01 1999 PST | 1999 | 52 | 5 | 5 | 365
  994. Sat Jan 01 17:32:01 2000 PST | 1999 | 52 | 6 | 6 | 1
  995. Sun Dec 31 17:32:01 2000 PST | 2000 | 52 | 7 | 0 | 366
  996. Mon Jan 01 17:32:01 2001 PST | 2001 | 1 | 1 | 1 | 1
  997. (66 rows)
  998. SELECT d1 as timestamptz,
  999. date_part( 'decade', d1) AS decade,
  1000. date_part( 'century', d1) AS century,
  1001. date_part( 'millennium', d1) AS millennium,
  1002. round(date_part( 'julian', d1)) AS julian,
  1003. date_part( 'epoch', d1) AS epoch
  1004. FROM TIMESTAMPTZ_TBL;
  1005. timestamptz | decade | century | millennium | julian | epoch
  1006. ---------------------------------+-----------+-----------+------------+-----------+--------------
  1007. -infinity | -Infinity | -Infinity | -Infinity | -Infinity | -Infinity
  1008. infinity | Infinity | Infinity | Infinity | Infinity | Infinity
  1009. Wed Dec 31 16:00:00 1969 PST | 196 | 20 | 2 | 2440588 | 0
  1010. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1011. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1012. Mon Feb 10 17:32:02 1997 PST | 199 | 20 | 2 | 2450491 | 855624722
  1013. Mon Feb 10 17:32:01.4 1997 PST | 199 | 20 | 2 | 2450491 | 855624721.4
  1014. Mon Feb 10 17:32:01.5 1997 PST | 199 | 20 | 2 | 2450491 | 855624721.5
  1015. Mon Feb 10 17:32:01.6 1997 PST | 199 | 20 | 2 | 2450491 | 855624721.6
  1016. Thu Jan 02 00:00:00 1997 PST | 199 | 20 | 2 | 2450451 | 852192000
  1017. Thu Jan 02 03:04:05 1997 PST | 199 | 20 | 2 | 2450451 | 852203045
  1018. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1019. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1020. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1021. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1022. Tue Jun 10 17:32:01 1997 PDT | 199 | 20 | 2 | 2450611 | 865989121
  1023. Sat Sep 22 18:19:20 2001 PDT | 200 | 21 | 3 | 2452176 | 1001207960
  1024. Wed Mar 15 08:14:01 2000 PST | 200 | 20 | 2 | 2451619 | 953136841
  1025. Wed Mar 15 04:14:02 2000 PST | 200 | 20 | 2 | 2451619 | 953122442
  1026. Wed Mar 15 02:14:03 2000 PST | 200 | 20 | 2 | 2451619 | 953115243
  1027. Wed Mar 15 03:14:04 2000 PST | 200 | 20 | 2 | 2451619 | 953118844
  1028. Wed Mar 15 01:14:05 2000 PST | 200 | 20 | 2 | 2451619 | 953111645
  1029. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1030. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1031. Mon Feb 10 17:32:00 1997 PST | 199 | 20 | 2 | 2450491 | 855624720
  1032. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1033. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1034. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1035. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1036. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1037. Mon Feb 10 09:32:01 1997 PST | 199 | 20 | 2 | 2450490 | 855595921
  1038. Mon Feb 10 09:32:01 1997 PST | 199 | 20 | 2 | 2450490 | 855595921
  1039. Mon Feb 10 09:32:01 1997 PST | 199 | 20 | 2 | 2450490 | 855595921
  1040. Mon Feb 10 14:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855613921
  1041. Thu Jul 10 14:32:01 1997 PDT | 199 | 20 | 2 | 2450641 | 868570321
  1042. Tue Jun 10 18:32:01 1997 PDT | 199 | 20 | 2 | 2450611 | 865992721
  1043. Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721
  1044. Tue Feb 11 17:32:01 1997 PST | 199 | 20 | 2 | 2450492 | 855711121
  1045. Wed Feb 12 17:32:01 1997 PST | 199 | 20 | 2 | 2450493 | 855797521
  1046. Thu Feb 13 17:32:01 1997 PST | 199 | 20 | 2 | 2450494 | 855883921
  1047. Fri Feb 14 17:32:01 1997 PST | 199 | 20 | 2 | 2450495 | 855970321
  1048. Sat Feb 15 17:32:01 1997 PST | 199 | 20 | 2 | 2450496 | 856056721
  1049. Sun Feb 16 17:32:01 1997 PST | 199 | 20 | 2 | 2450497 | 856143121
  1050. Tue Feb 16 17:32:01 0097 PST BC | -10 | -1 | -1 | 1686043 | -65192682479
  1051. Sat Feb 16 17:32:01 0097 PST | 9 | 1 | 1 | 1756537 | -59102000879
  1052. Thu Feb 16 17:32:01 0597 PST | 59 | 6 | 1 | 1939158 | -43323546479
  1053. Tue Feb 16 17:32:01 1097 PST | 109 | 11 | 2 | 2121779 | -27545092079
  1054. Sat Feb 16 17:32:01 1697 PST | 169 | 17 | 2 | 2340925 | -8610877679
  1055. Thu Feb 16 17:32:01 1797 PST | 179 | 18 | 2 | 2377449 | -5455204079
  1056. Tue Feb 16 17:32:01 1897 PST | 189 | 19 | 2 | 2413973 | -2299530479
  1057. Sun Feb 16 17:32:01 1997 PST | 199 | 20 | 2 | 2450497 | 856143121
  1058. Sat Feb 16 17:32:01 2097 PST | 209 | 21 | 3 | 2487022 | 4011903121
  1059. Wed Feb 28 17:32:01 1996 PST | 199 | 20 | 2 | 2450143 | 825557521
  1060. Thu Feb 29 17:32:01 1996 PST | 199 | 20 | 2 | 2450144 | 825643921
  1061. Fri Mar 01 17:32:01 1996 PST | 199 | 20 | 2 | 2450145 | 825730321
  1062. Mon Dec 30 17:32:01 1996 PST | 199 | 20 | 2 | 2450449 | 851995921
  1063. Tue Dec 31 17:32:01 1996 PST | 199 | 20 | 2 | 2450450 | 852082321
  1064. Wed Jan 01 17:32:01 1997 PST | 199 | 20 | 2 | 2450451 | 852168721
  1065. Fri Feb 28 17:32:01 1997 PST | 199 | 20 | 2 | 2450509 | 857179921
  1066. Sat Mar 01 17:32:01 1997 PST | 199 | 20 | 2 | 2450510 | 857266321
  1067. Tue Dec 30 17:32:01 1997 PST | 199 | 20 | 2 | 2450814 | 883531921
  1068. Wed Dec 31 17:32:01 1997 PST | 199 | 20 | 2 | 2450815 | 883618321
  1069. Fri Dec 31 17:32:01 1999 PST | 199 | 20 | 2 | 2451545 | 946690321
  1070. Sat Jan 01 17:32:01 2000 PST | 200 | 20 | 2 | 2451546 | 946776721
  1071. Sun Dec 31 17:32:01 2000 PST | 200 | 20 | 2 | 2451911 | 978312721
  1072. Mon Jan 01 17:32:01 2001 PST | 200 | 21 | 3 | 2451912 | 978399121
  1073. (66 rows)
  1074. SELECT d1 as timestamptz,
  1075. date_part( 'timezone', d1) AS timezone,
  1076. date_part( 'timezone_hour', d1) AS timezone_hour,
  1077. date_part( 'timezone_minute', d1) AS timezone_minute
  1078. FROM TIMESTAMPTZ_TBL;
  1079. timestamptz | timezone | timezone_hour | timezone_minute
  1080. ---------------------------------+----------+---------------+-----------------
  1081. -infinity | | |
  1082. infinity | | |
  1083. Wed Dec 31 16:00:00 1969 PST | -28800 | -8 | 0
  1084. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1085. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1086. Mon Feb 10 17:32:02 1997 PST | -28800 | -8 | 0
  1087. Mon Feb 10 17:32:01.4 1997 PST | -28800 | -8 | 0
  1088. Mon Feb 10 17:32:01.5 1997 PST | -28800 | -8 | 0
  1089. Mon Feb 10 17:32:01.6 1997 PST | -28800 | -8 | 0
  1090. Thu Jan 02 00:00:00 1997 PST | -28800 | -8 | 0
  1091. Thu Jan 02 03:04:05 1997 PST | -28800 | -8 | 0
  1092. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1093. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1094. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1095. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1096. Tue Jun 10 17:32:01 1997 PDT | -25200 | -7 | 0
  1097. Sat Sep 22 18:19:20 2001 PDT | -25200 | -7 | 0
  1098. Wed Mar 15 08:14:01 2000 PST | -28800 | -8 | 0
  1099. Wed Mar 15 04:14:02 2000 PST | -28800 | -8 | 0
  1100. Wed Mar 15 02:14:03 2000 PST | -28800 | -8 | 0
  1101. Wed Mar 15 03:14:04 2000 PST | -28800 | -8 | 0
  1102. Wed Mar 15 01:14:05 2000 PST | -28800 | -8 | 0
  1103. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1104. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1105. Mon Feb 10 17:32:00 1997 PST | -28800 | -8 | 0
  1106. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1107. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1108. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1109. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1110. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1111. Mon Feb 10 09:32:01 1997 PST | -28800 | -8 | 0
  1112. Mon Feb 10 09:32:01 1997 PST | -28800 | -8 | 0
  1113. Mon Feb 10 09:32:01 1997 PST | -28800 | -8 | 0
  1114. Mon Feb 10 14:32:01 1997 PST | -28800 | -8 | 0
  1115. Thu Jul 10 14:32:01 1997 PDT | -25200 | -7 | 0
  1116. Tue Jun 10 18:32:01 1997 PDT | -25200 | -7 | 0
  1117. Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0
  1118. Tue Feb 11 17:32:01 1997 PST | -28800 | -8 | 0
  1119. Wed Feb 12 17:32:01 1997 PST | -28800 | -8 | 0
  1120. Thu Feb 13 17:32:01 1997 PST | -28800 | -8 | 0
  1121. Fri Feb 14 17:32:01 1997 PST | -28800 | -8 | 0
  1122. Sat Feb 15 17:32:01 1997 PST | -28800 | -8 | 0
  1123. Sun Feb 16 17:32:01 1997 PST | -28800 | -8 | 0
  1124. Tue Feb 16 17:32:01 0097 PST BC | -28800 | -8 | 0
  1125. Sat Feb 16 17:32:01 0097 PST | -28800 | -8 | 0
  1126. Thu Feb 16 17:32:01 0597 PST | -28800 | -8 | 0
  1127. Tue Feb 16 17:32:01 1097 PST | -28800 | -8 | 0
  1128. Sat Feb 16 17:32:01 1697 PST | -28800 | -8 | 0
  1129. Thu Feb 16 17:32:01 1797 PST | -28800 | -8 | 0
  1130. Tue Feb 16 17:32:01 1897 PST | -28800 | -8 | 0
  1131. Sun Feb 16 17:32:01 1997 PST | -28800 | -8 | 0
  1132. Sat Feb 16 17:32:01 2097 PST | -28800 | -8 | 0
  1133. Wed Feb 28 17:32:01 1996 PST | -28800 | -8 | 0
  1134. Thu Feb 29 17:32:01 1996 PST | -28800 | -8 | 0
  1135. Fri Mar 01 17:32:01 1996 PST | -28800 | -8 | 0
  1136. Mon Dec 30 17:32:01 1996 PST | -28800 | -8 | 0
  1137. Tue Dec 31 17:32:01 1996 PST | -28800 | -8 | 0
  1138. Wed Jan 01 17:32:01 1997 PST | -28800 | -8 | 0
  1139. Fri Feb 28 17:32:01 1997 PST | -28800 | -8 | 0
  1140. Sat Mar 01 17:32:01 1997 PST | -28800 | -8 | 0
  1141. Tue Dec 30 17:32:01 1997 PST | -28800 | -8 | 0
  1142. Wed Dec 31 17:32:01 1997 PST | -28800 | -8 | 0
  1143. Fri Dec 31 17:32:01 1999 PST | -28800 | -8 | 0
  1144. Sat Jan 01 17:32:01 2000 PST | -28800 | -8 | 0
  1145. Sun Dec 31 17:32:01 2000 PST | -28800 | -8 | 0
  1146. Mon Jan 01 17:32:01 2001 PST | -28800 | -8 | 0
  1147. (66 rows)
  1148. -- extract implementation is mostly the same as date_part, so only
  1149. -- test a few cases for additional coverage.
  1150. SELECT d1 as "timestamp",
  1151. extract(microseconds from d1) AS microseconds,
  1152. extract(milliseconds from d1) AS milliseconds,
  1153. extract(seconds from d1) AS seconds,
  1154. round(extract(julian from d1)) AS julian,
  1155. extract(epoch from d1) AS epoch
  1156. FROM TIMESTAMPTZ_TBL;
  1157. timestamp | microseconds | milliseconds | seconds | julian | epoch
  1158. ---------------------------------+--------------+--------------+-----------+-----------+---------------------
  1159. -infinity | | | | -Infinity | -Infinity
  1160. infinity | | | | Infinity | Infinity
  1161. Wed Dec 31 16:00:00 1969 PST | 0 | 0.000 | 0.000000 | 2440588 | 0.000000
  1162. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1163. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1164. Mon Feb 10 17:32:02 1997 PST | 2000000 | 2000.000 | 2.000000 | 2450491 | 855624722.000000
  1165. Mon Feb 10 17:32:01.4 1997 PST | 1400000 | 1400.000 | 1.400000 | 2450491 | 855624721.400000
  1166. Mon Feb 10 17:32:01.5 1997 PST | 1500000 | 1500.000 | 1.500000 | 2450491 | 855624721.500000
  1167. Mon Feb 10 17:32:01.6 1997 PST | 1600000 | 1600.000 | 1.600000 | 2450491 | 855624721.600000
  1168. Thu Jan 02 00:00:00 1997 PST | 0 | 0.000 | 0.000000 | 2450451 | 852192000.000000
  1169. Thu Jan 02 03:04:05 1997 PST | 5000000 | 5000.000 | 5.000000 | 2450451 | 852203045.000000
  1170. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1171. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1172. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1173. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1174. Tue Jun 10 17:32:01 1997 PDT | 1000000 | 1000.000 | 1.000000 | 2450611 | 865989121.000000
  1175. Sat Sep 22 18:19:20 2001 PDT | 20000000 | 20000.000 | 20.000000 | 2452176 | 1001207960.000000
  1176. Wed Mar 15 08:14:01 2000 PST | 1000000 | 1000.000 | 1.000000 | 2451619 | 953136841.000000
  1177. Wed Mar 15 04:14:02 2000 PST | 2000000 | 2000.000 | 2.000000 | 2451619 | 953122442.000000
  1178. Wed Mar 15 02:14:03 2000 PST | 3000000 | 3000.000 | 3.000000 | 2451619 | 953115243.000000
  1179. Wed Mar 15 03:14:04 2000 PST | 4000000 | 4000.000 | 4.000000 | 2451619 | 953118844.000000
  1180. Wed Mar 15 01:14:05 2000 PST | 5000000 | 5000.000 | 5.000000 | 2451619 | 953111645.000000
  1181. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1182. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1183. Mon Feb 10 17:32:00 1997 PST | 0 | 0.000 | 0.000000 | 2450491 | 855624720.000000
  1184. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1185. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1186. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1187. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1188. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1189. Mon Feb 10 09:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450490 | 855595921.000000
  1190. Mon Feb 10 09:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450490 | 855595921.000000
  1191. Mon Feb 10 09:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450490 | 855595921.000000
  1192. Mon Feb 10 14:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855613921.000000
  1193. Thu Jul 10 14:32:01 1997 PDT | 1000000 | 1000.000 | 1.000000 | 2450641 | 868570321.000000
  1194. Tue Jun 10 18:32:01 1997 PDT | 1000000 | 1000.000 | 1.000000 | 2450611 | 865992721.000000
  1195. Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000
  1196. Tue Feb 11 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450492 | 855711121.000000
  1197. Wed Feb 12 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450493 | 855797521.000000
  1198. Thu Feb 13 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450494 | 855883921.000000
  1199. Fri Feb 14 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450495 | 855970321.000000
  1200. Sat Feb 15 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450496 | 856056721.000000
  1201. Sun Feb 16 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450497 | 856143121.000000
  1202. Tue Feb 16 17:32:01 0097 PST BC | 1000000 | 1000.000 | 1.000000 | 1686043 | -65192682479.000000
  1203. Sat Feb 16 17:32:01 0097 PST | 1000000 | 1000.000 | 1.000000 | 1756537 | -59102000879.000000
  1204. Thu Feb 16 17:32:01 0597 PST | 1000000 | 1000.000 | 1.000000 | 1939158 | -43323546479.000000
  1205. Tue Feb 16 17:32:01 1097 PST | 1000000 | 1000.000 | 1.000000 | 2121779 | -27545092079.000000
  1206. Sat Feb 16 17:32:01 1697 PST | 1000000 | 1000.000 | 1.000000 | 2340925 | -8610877679.000000
  1207. Thu Feb 16 17:32:01 1797 PST | 1000000 | 1000.000 | 1.000000 | 2377449 | -5455204079.000000
  1208. Tue Feb 16 17:32:01 1897 PST | 1000000 | 1000.000 | 1.000000 | 2413973 | -2299530479.000000
  1209. Sun Feb 16 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450497 | 856143121.000000
  1210. Sat Feb 16 17:32:01 2097 PST | 1000000 | 1000.000 | 1.000000 | 2487022 | 4011903121.000000
  1211. Wed Feb 28 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450143 | 825557521.000000
  1212. Thu Feb 29 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450144 | 825643921.000000
  1213. Fri Mar 01 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450145 | 825730321.000000
  1214. Mon Dec 30 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450449 | 851995921.000000
  1215. Tue Dec 31 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450450 | 852082321.000000
  1216. Wed Jan 01 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450451 | 852168721.000000
  1217. Fri Feb 28 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450509 | 857179921.000000
  1218. Sat Mar 01 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450510 | 857266321.000000
  1219. Tue Dec 30 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450814 | 883531921.000000
  1220. Wed Dec 31 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450815 | 883618321.000000
  1221. Fri Dec 31 17:32:01 1999 PST | 1000000 | 1000.000 | 1.000000 | 2451545 | 946690321.000000
  1222. Sat Jan 01 17:32:01 2000 PST | 1000000 | 1000.000 | 1.000000 | 2451546 | 946776721.000000
  1223. Sun Dec 31 17:32:01 2000 PST | 1000000 | 1000.000 | 1.000000 | 2451911 | 978312721.000000
  1224. Mon Jan 01 17:32:01 2001 PST | 1000000 | 1000.000 | 1.000000 | 2451912 | 978399121.000000
  1225. (66 rows)
  1226. -- value near upper bound uses special case in code
  1227. SELECT date_part('epoch', '294270-01-01 00:00:00+00'::timestamptz);
  1228. date_part
  1229. ---------------
  1230. 9224097091200
  1231. (1 row)
  1232. SELECT extract(epoch from '294270-01-01 00:00:00+00'::timestamptz);
  1233. extract
  1234. ----------------------
  1235. 9224097091200.000000
  1236. (1 row)
  1237. -- another internal overflow test case
  1238. SELECT extract(epoch from '5000-01-01 00:00:00+00'::timestamptz);
  1239. extract
  1240. --------------------
  1241. 95617584000.000000
  1242. (1 row)
  1243. -- TO_CHAR()
  1244. SELECT to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
  1245. FROM TIMESTAMPTZ_TBL;
  1246. to_char
  1247. ------------------------------------------------------------------------------------------
  1248. WEDNESDAY Wednesday wednesday WED Wed wed DECEMBER December december XII DEC Dec dec
  1249. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1250. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1251. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1252. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1253. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1254. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1255. THURSDAY Thursday thursday THU Thu thu JANUARY January january I JAN Jan jan
  1256. THURSDAY Thursday thursday THU Thu thu JANUARY January january I JAN Jan jan
  1257. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1258. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1259. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1260. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1261. TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun
  1262. SATURDAY Saturday saturday SAT Sat sat SEPTEMBER September september IX SEP Sep sep
  1263. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1264. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1265. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1266. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1267. WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
  1268. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1269. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1270. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1271. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1272. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1273. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1274. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1275. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1276. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1277. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1278. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1279. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1280. THURSDAY Thursday thursday THU Thu thu JULY July july VII JUL Jul jul
  1281. TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun
  1282. MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
  1283. TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
  1284. WEDNESDAY Wednesday wednesday WED Wed wed FEBRUARY February february II FEB Feb feb
  1285. THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
  1286. FRIDAY Friday friday FRI Fri fri FEBRUARY February february II FEB Feb feb
  1287. SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
  1288. SUNDAY Sunday sunday SUN Sun sun FEBRUARY February february II FEB Feb feb
  1289. TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
  1290. SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
  1291. THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
  1292. TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
  1293. SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
  1294. THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
  1295. TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
  1296. SUNDAY Sunday sunday SUN Sun sun FEBRUARY February february II FEB Feb feb
  1297. SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
  1298. WEDNESDAY Wednesday wednesday WED Wed wed FEBRUARY February february II FEB Feb feb
  1299. THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
  1300. FRIDAY Friday friday FRI Fri fri MARCH March march III MAR Mar mar
  1301. MONDAY Monday monday MON Mon mon DECEMBER December december XII DEC Dec dec
  1302. TUESDAY Tuesday tuesday TUE Tue tue DECEMBER December december XII DEC Dec dec
  1303. WEDNESDAY Wednesday wednesday WED Wed wed JANUARY January january I JAN Jan jan
  1304. FRIDAY Friday friday FRI Fri fri FEBRUARY February february II FEB Feb feb
  1305. SATURDAY Saturday saturday SAT Sat sat MARCH March march III MAR Mar mar
  1306. TUESDAY Tuesday tuesday TUE Tue tue DECEMBER December december XII DEC Dec dec
  1307. WEDNESDAY Wednesday wednesday WED Wed wed DECEMBER December december XII DEC Dec dec
  1308. FRIDAY Friday friday FRI Fri fri DECEMBER December december XII DEC Dec dec
  1309. SATURDAY Saturday saturday SAT Sat sat JANUARY January january I JAN Jan jan
  1310. SUNDAY Sunday sunday SUN Sun sun DECEMBER December december XII DEC Dec dec
  1311. MONDAY Monday monday MON Mon mon JANUARY January january I JAN Jan jan
  1312. (66 rows)
  1313. SELECT to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM')
  1314. FROM TIMESTAMPTZ_TBL;
  1315. to_char
  1316. --------------------------------------------------------------
  1317. WEDNESDAY Wednesday wednesday DECEMBER December december XII
  1318. MONDAY Monday monday FEBRUARY February february II
  1319. MONDAY Monday monday FEBRUARY February february II
  1320. MONDAY Monday monday FEBRUARY February february II
  1321. MONDAY Monday monday FEBRUARY February february II
  1322. MONDAY Monday monday FEBRUARY February february II
  1323. MONDAY Monday monday FEBRUARY February february II
  1324. THURSDAY Thursday thursday JANUARY January january I
  1325. THURSDAY Thursday thursday JANUARY January january I
  1326. MONDAY Monday monday FEBRUARY February february II
  1327. MONDAY Monday monday FEBRUARY February february II
  1328. MONDAY Monday monday FEBRUARY February february II
  1329. MONDAY Monday monday FEBRUARY February february II
  1330. TUESDAY Tuesday tuesday JUNE June june VI
  1331. SATURDAY Saturday saturday SEPTEMBER September september IX
  1332. WEDNESDAY Wednesday wednesday MARCH March march III
  1333. WEDNESDAY Wednesday wednesday MARCH March march III
  1334. WEDNESDAY Wednesday wednesday MARCH March march III
  1335. WEDNESDAY Wednesday wednesday MARCH March march III
  1336. WEDNESDAY Wednesday wednesday MARCH March march III
  1337. MONDAY Monday monday FEBRUARY February february II
  1338. MONDAY Monday monday FEBRUARY February february II
  1339. MONDAY Monday monday FEBRUARY February february II
  1340. MONDAY Monday monday FEBRUARY February february II
  1341. MONDAY Monday monday FEBRUARY February february II
  1342. MONDAY Monday monday FEBRUARY February february II
  1343. MONDAY Monday monday FEBRUARY February february II
  1344. MONDAY Monday monday FEBRUARY February february II
  1345. MONDAY Monday monday FEBRUARY February february II
  1346. MONDAY Monday monday FEBRUARY February february II
  1347. MONDAY Monday monday FEBRUARY February february II
  1348. MONDAY Monday monday FEBRUARY February february II
  1349. THURSDAY Thursday thursday JULY July july VII
  1350. TUESDAY Tuesday tuesday JUNE June june VI
  1351. MONDAY Monday monday FEBRUARY February february II
  1352. TUESDAY Tuesday tuesday FEBRUARY February february II
  1353. WEDNESDAY Wednesday wednesday FEBRUARY February february II
  1354. THURSDAY Thursday thursday FEBRUARY February february II
  1355. FRIDAY Friday friday FEBRUARY February february II
  1356. SATURDAY Saturday saturday FEBRUARY February february II
  1357. SUNDAY Sunday sunday FEBRUARY February february II
  1358. TUESDAY Tuesday tuesday FEBRUARY February february II
  1359. SATURDAY Saturday saturday FEBRUARY February february II
  1360. THURSDAY Thursday thursday FEBRUARY February february II
  1361. TUESDAY Tuesday tuesday FEBRUARY February february II
  1362. SATURDAY Saturday saturday FEBRUARY February february II
  1363. THURSDAY Thursday thursday FEBRUARY February february II
  1364. TUESDAY Tuesday tuesday FEBRUARY February february II
  1365. SUNDAY Sunday sunday FEBRUARY February february II
  1366. SATURDAY Saturday saturday FEBRUARY February february II
  1367. WEDNESDAY Wednesday wednesday FEBRUARY February february II
  1368. THURSDAY Thursday thursday FEBRUARY February february II
  1369. FRIDAY Friday friday MARCH March march III
  1370. MONDAY Monday monday DECEMBER December december XII
  1371. TUESDAY Tuesday tuesday DECEMBER December december XII
  1372. WEDNESDAY Wednesday wednesday JANUARY January january I
  1373. FRIDAY Friday friday FEBRUARY February february II
  1374. SATURDAY Saturday saturday MARCH March march III
  1375. TUESDAY Tuesday tuesday DECEMBER December december XII
  1376. WEDNESDAY Wednesday wednesday DECEMBER December december XII
  1377. FRIDAY Friday friday DECEMBER December december XII
  1378. SATURDAY Saturday saturday JANUARY January january I
  1379. SUNDAY Sunday sunday DECEMBER December december XII
  1380. MONDAY Monday monday JANUARY January january I
  1381. (66 rows)
  1382. SELECT to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
  1383. FROM TIMESTAMPTZ_TBL;
  1384. to_char
  1385. --------------------------------------------------
  1386. 1,969 1969 969 69 9 20 4 12 53 365 31 4 2440587
  1387. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1388. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1389. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1390. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1391. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1392. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1393. 1,997 1997 997 97 7 20 1 01 01 002 02 5 2450451
  1394. 1,997 1997 997 97 7 20 1 01 01 002 02 5 2450451
  1395. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1396. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1397. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1398. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1399. 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610
  1400. 2,001 2001 001 01 1 21 3 09 38 265 22 7 2452175
  1401. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1402. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1403. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1404. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1405. 2,000 2000 000 00 0 20 1 03 11 075 15 4 2451619
  1406. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1407. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1408. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1409. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1410. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1411. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1412. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1413. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1414. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1415. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1416. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1417. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1418. 1,997 1997 997 97 7 20 3 07 28 191 10 5 2450640
  1419. 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610
  1420. 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
  1421. 1,997 1997 997 97 7 20 1 02 06 042 11 3 2450491
  1422. 1,997 1997 997 97 7 20 1 02 07 043 12 4 2450492
  1423. 1,997 1997 997 97 7 20 1 02 07 044 13 5 2450493
  1424. 1,997 1997 997 97 7 20 1 02 07 045 14 6 2450494
  1425. 1,997 1997 997 97 7 20 1 02 07 046 15 7 2450495
  1426. 1,997 1997 997 97 7 20 1 02 07 047 16 1 2450496
  1427. 0,097 0097 097 97 7 -01 1 02 07 047 16 3 1686042
  1428. 0,097 0097 097 97 7 01 1 02 07 047 16 7 1756536
  1429. 0,597 0597 597 97 7 06 1 02 07 047 16 5 1939157
  1430. 1,097 1097 097 97 7 11 1 02 07 047 16 3 2121778
  1431. 1,697 1697 697 97 7 17 1 02 07 047 16 7 2340924
  1432. 1,797 1797 797 97 7 18 1 02 07 047 16 5 2377448
  1433. 1,897 1897 897 97 7 19 1 02 07 047 16 3 2413972
  1434. 1,997 1997 997 97 7 20 1 02 07 047 16 1 2450496
  1435. 2,097 2097 097 97 7 21 1 02 07 047 16 7 2487021
  1436. 1,996 1996 996 96 6 20 1 02 09 059 28 4 2450142
  1437. 1,996 1996 996 96 6 20 1 02 09 060 29 5 2450143
  1438. 1,996 1996 996 96 6 20 1 03 09 061 01 6 2450144
  1439. 1,996 1996 996 96 6 20 4 12 53 365 30 2 2450448
  1440. 1,996 1996 996 96 6 20 4 12 53 366 31 3 2450449
  1441. 1,997 1997 997 97 7 20 1 01 01 001 01 4 2450450
  1442. 1,997 1997 997 97 7 20 1 02 09 059 28 6 2450508
  1443. 1,997 1997 997 97 7 20 1 03 09 060 01 7 2450509
  1444. 1,997 1997 997 97 7 20 4 12 52 364 30 3 2450813
  1445. 1,997 1997 997 97 7 20 4 12 53 365 31 4 2450814
  1446. 1,999 1999 999 99 9 20 4 12 53 365 31 6 2451544
  1447. 2,000 2000 000 00 0 20 1 01 01 001 01 7 2451545
  1448. 2,000 2000 000 00 0 20 4 12 53 366 31 1 2451910
  1449. 2,001 2001 001 01 1 21 1 01 01 001 01 2 2451911
  1450. (66 rows)
  1451. SELECT to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ')
  1452. FROM TIMESTAMPTZ_TBL;
  1453. to_char
  1454. -------------------------------------------------
  1455. 1,969 1969 969 69 9 20 4 12 53 365 31 4 2440587
  1456. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1457. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1458. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1459. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1460. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1461. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1462. 1,997 1997 997 97 7 20 1 1 1 2 2 5 2450451
  1463. 1,997 1997 997 97 7 20 1 1 1 2 2 5 2450451
  1464. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1465. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1466. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1467. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1468. 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610
  1469. 2,001 2001 1 1 1 21 3 9 38 265 22 7 2452175
  1470. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1471. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1472. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1473. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1474. 2,000 2000 0 0 0 20 1 3 11 75 15 4 2451619
  1475. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1476. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1477. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1478. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1479. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1480. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1481. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1482. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1483. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1484. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1485. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1486. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1487. 1,997 1997 997 97 7 20 3 7 28 191 10 5 2450640
  1488. 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610
  1489. 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
  1490. 1,997 1997 997 97 7 20 1 2 6 42 11 3 2450491
  1491. 1,997 1997 997 97 7 20 1 2 7 43 12 4 2450492
  1492. 1,997 1997 997 97 7 20 1 2 7 44 13 5 2450493
  1493. 1,997 1997 997 97 7 20 1 2 7 45 14 6 2450494
  1494. 1,997 1997 997 97 7 20 1 2 7 46 15 7 2450495
  1495. 1,997 1997 997 97 7 20 1 2 7 47 16 1 2450496
  1496. 0,097 97 97 97 7 -1 1 2 7 47 16 3 1686042
  1497. 0,097 97 97 97 7 1 1 2 7 47 16 7 1756536
  1498. 0,597 597 597 97 7 6 1 2 7 47 16 5 1939157
  1499. 1,097 1097 97 97 7 11 1 2 7 47 16 3 2121778
  1500. 1,697 1697 697 97 7 17 1 2 7 47 16 7 2340924
  1501. 1,797 1797 797 97 7 18 1 2 7 47 16 5 2377448
  1502. 1,897 1897 897 97 7 19 1 2 7 47 16 3 2413972
  1503. 1,997 1997 997 97 7 20 1 2 7 47 16 1 2450496
  1504. 2,097 2097 97 97 7 21 1 2 7 47 16 7 2487021
  1505. 1,996 1996 996 96 6 20 1 2 9 59 28 4 2450142
  1506. 1,996 1996 996 96 6 20 1 2 9 60 29 5 2450143
  1507. 1,996 1996 996 96 6 20 1 3 9 61 1 6 2450144
  1508. 1,996 1996 996 96 6 20 4 12 53 365 30 2 2450448
  1509. 1,996 1996 996 96 6 20 4 12 53 366 31 3 2450449
  1510. 1,997 1997 997 97 7 20 1 1 1 1 1 4 2450450
  1511. 1,997 1997 997 97 7 20 1 2 9 59 28 6 2450508
  1512. 1,997 1997 997 97 7 20 1 3 9 60 1 7 2450509
  1513. 1,997 1997 997 97 7 20 4 12 52 364 30 3 2450813
  1514. 1,997 1997 997 97 7 20 4 12 53 365 31 4 2450814
  1515. 1,999 1999 999 99 9 20 4 12 53 365 31 6 2451544
  1516. 2,000 2000 0 0 0 20 1 1 1 1 1 7 2451545
  1517. 2,000 2000 0 0 0 20 4 12 53 366 31 1 2451910
  1518. 2,001 2001 1 1 1 21 1 1 1 1 1 2 2451911
  1519. (66 rows)
  1520. SELECT to_char(d1, 'HH HH12 HH24 MI SS SSSS')
  1521. FROM TIMESTAMPTZ_TBL;
  1522. to_char
  1523. ----------------------
  1524. 04 04 16 00 00 57600
  1525. 05 05 17 32 01 63121
  1526. 05 05 17 32 01 63121
  1527. 05 05 17 32 02 63122
  1528. 05 05 17 32 01 63121
  1529. 05 05 17 32 01 63121
  1530. 05 05 17 32 01 63121
  1531. 12 12 00 00 00 0
  1532. 03 03 03 04 05 11045
  1533. 05 05 17 32 01 63121
  1534. 05 05 17 32 01 63121
  1535. 05 05 17 32 01 63121
  1536. 05 05 17 32 01 63121
  1537. 05 05 17 32 01 63121
  1538. 06 06 18 19 20 65960
  1539. 08 08 08 14 01 29641
  1540. 04 04 04 14 02 15242
  1541. 02 02 02 14 03 8043
  1542. 03 03 03 14 04 11644
  1543. 01 01 01 14 05 4445
  1544. 05 05 17 32 01 63121
  1545. 05 05 17 32 01 63121
  1546. 05 05 17 32 00 63120
  1547. 05 05 17 32 01 63121
  1548. 05 05 17 32 01 63121
  1549. 05 05 17 32 01 63121
  1550. 05 05 17 32 01 63121
  1551. 05 05 17 32 01 63121
  1552. 09 09 09 32 01 34321
  1553. 09 09 09 32 01 34321
  1554. 09 09 09 32 01 34321
  1555. 02 02 14 32 01 52321
  1556. 02 02 14 32 01 52321
  1557. 06 06 18 32 01 66721
  1558. 05 05 17 32 01 63121
  1559. 05 05 17 32 01 63121
  1560. 05 05 17 32 01 63121
  1561. 05 05 17 32 01 63121
  1562. 05 05 17 32 01 63121
  1563. 05 05 17 32 01 63121
  1564. 05 05 17 32 01 63121
  1565. 05 05 17 32 01 63121
  1566. 05 05 17 32 01 63121
  1567. 05 05 17 32 01 63121
  1568. 05 05 17 32 01 63121
  1569. 05 05 17 32 01 63121
  1570. 05 05 17 32 01 63121
  1571. 05 05 17 32 01 63121
  1572. 05 05 17 32 01 63121
  1573. 05 05 17 32 01 63121
  1574. 05 05 17 32 01 63121
  1575. 05 05 17 32 01 63121
  1576. 05 05 17 32 01 63121
  1577. 05 05 17 32 01 63121
  1578. 05 05 17 32 01 63121
  1579. 05 05 17 32 01 63121
  1580. 05 05 17 32 01 63121
  1581. 05 05 17 32 01 63121
  1582. 05 05 17 32 01 63121
  1583. 05 05 17 32 01 63121
  1584. 05 05 17 32 01 63121
  1585. 05 05 17 32 01 63121
  1586. 05 05 17 32 01 63121
  1587. 05 05 17 32 01 63121
  1588. (66 rows)
  1589. SELECT to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
  1590. FROM TIMESTAMPTZ_TBL;
  1591. to_char
  1592. -------------------------------------------------
  1593. HH:MI:SS is 04:00:00 "text between quote marks"
  1594. HH:MI:SS is 05:32:01 "text between quote marks"
  1595. HH:MI:SS is 05:32:01 "text between quote marks"
  1596. HH:MI:SS is 05:32:02 "text between quote marks"
  1597. HH:MI:SS is 05:32:01 "text between quote marks"
  1598. HH:MI:SS is 05:32:01 "text between quote marks"
  1599. HH:MI:SS is 05:32:01 "text between quote marks"
  1600. HH:MI:SS is 12:00:00 "text between quote marks"
  1601. HH:MI:SS is 03:04:05 "text between quote marks"
  1602. HH:MI:SS is 05:32:01 "text between quote marks"
  1603. HH:MI:SS is 05:32:01 "text between quote marks"
  1604. HH:MI:SS is 05:32:01 "text between quote marks"
  1605. HH:MI:SS is 05:32:01 "text between quote marks"
  1606. HH:MI:SS is 05:32:01 "text between quote marks"
  1607. HH:MI:SS is 06:19:20 "text between quote marks"
  1608. HH:MI:SS is 08:14:01 "text between quote marks"
  1609. HH:MI:SS is 04:14:02 "text between quote marks"
  1610. HH:MI:SS is 02:14:03 "text between quote marks"
  1611. HH:MI:SS is 03:14:04 "text between quote marks"
  1612. HH:MI:SS is 01:14:05 "text between quote marks"
  1613. HH:MI:SS is 05:32:01 "text between quote marks"
  1614. HH:MI:SS is 05:32:01 "text between quote marks"
  1615. HH:MI:SS is 05:32:00 "text between quote marks"
  1616. HH:MI:SS is 05:32:01 "text between quote marks"
  1617. HH:MI:SS is 05:32:01 "text between quote marks"
  1618. HH:MI:SS is 05:32:01 "text between quote marks"
  1619. HH:MI:SS is 05:32:01 "text between quote marks"
  1620. HH:MI:SS is 05:32:01 "text between quote marks"
  1621. HH:MI:SS is 09:32:01 "text between quote marks"
  1622. HH:MI:SS is 09:32:01 "text between quote marks"
  1623. HH:MI:SS is 09:32:01 "text between quote marks"
  1624. HH:MI:SS is 02:32:01 "text between quote marks"
  1625. HH:MI:SS is 02:32:01 "text between quote marks"
  1626. HH:MI:SS is 06:32:01 "text between quote marks"
  1627. HH:MI:SS is 05:32:01 "text between quote marks"
  1628. HH:MI:SS is 05:32:01 "text between quote marks"
  1629. HH:MI:SS is 05:32:01 "text between quote marks"
  1630. HH:MI:SS is 05:32:01 "text between quote marks"
  1631. HH:MI:SS is 05:32:01 "text between quote marks"
  1632. HH:MI:SS is 05:32:01 "text between quote marks"
  1633. HH:MI:SS is 05:32:01 "text between quote marks"
  1634. HH:MI:SS is 05:32:01 "text between quote marks"
  1635. HH:MI:SS is 05:32:01 "text between quote marks"
  1636. HH:MI:SS is 05:32:01 "text between quote marks"
  1637. HH:MI:SS is 05:32:01 "text between quote marks"
  1638. HH:MI:SS is 05:32:01 "text between quote marks"
  1639. HH:MI:SS is 05:32:01 "text between quote marks"
  1640. HH:MI:SS is 05:32:01 "text between quote marks"
  1641. HH:MI:SS is 05:32:01 "text between quote marks"
  1642. HH:MI:SS is 05:32:01 "text between quote marks"
  1643. HH:MI:SS is 05:32:01 "text between quote marks"
  1644. HH:MI:SS is 05:32:01 "text between quote marks"
  1645. HH:MI:SS is 05:32:01 "text between quote marks"
  1646. HH:MI:SS is 05:32:01 "text between quote marks"
  1647. HH:MI:SS is 05:32:01 "text between quote marks"
  1648. HH:MI:SS is 05:32:01 "text between quote marks"
  1649. HH:MI:SS is 05:32:01 "text between quote marks"
  1650. HH:MI:SS is 05:32:01 "text between quote marks"
  1651. HH:MI:SS is 05:32:01 "text between quote marks"
  1652. HH:MI:SS is 05:32:01 "text between quote marks"
  1653. HH:MI:SS is 05:32:01 "text between quote marks"
  1654. HH:MI:SS is 05:32:01 "text between quote marks"
  1655. HH:MI:SS is 05:32:01 "text between quote marks"
  1656. HH:MI:SS is 05:32:01 "text between quote marks"
  1657. (66 rows)
  1658. SELECT to_char(d1, 'HH24--text--MI--text--SS')
  1659. FROM TIMESTAMPTZ_TBL;
  1660. to_char
  1661. ------------------------
  1662. 16--text--00--text--00
  1663. 17--text--32--text--01
  1664. 17--text--32--text--01
  1665. 17--text--32--text--02
  1666. 17--text--32--text--01
  1667. 17--text--32--text--01
  1668. 17--text--32--text--01
  1669. 00--text--00--text--00
  1670. 03--text--04--text--05
  1671. 17--text--32--text--01
  1672. 17--text--32--text--01
  1673. 17--text--32--text--01
  1674. 17--text--32--text--01
  1675. 17--text--32--text--01
  1676. 18--text--19--text--20
  1677. 08--text--14--text--01
  1678. 04--text--14--text--02
  1679. 02--text--14--text--03
  1680. 03--text--14--text--04
  1681. 01--text--14--text--05
  1682. 17--text--32--text--01
  1683. 17--text--32--text--01
  1684. 17--text--32--text--00
  1685. 17--text--32--text--01
  1686. 17--text--32--text--01
  1687. 17--text--32--text--01
  1688. 17--text--32--text--01
  1689. 17--text--32--text--01
  1690. 09--text--32--text--01
  1691. 09--text--32--text--01
  1692. 09--text--32--text--01
  1693. 14--text--32--text--01
  1694. 14--text--32--text--01
  1695. 18--text--32--text--01
  1696. 17--text--32--text--01
  1697. 17--text--32--text--01
  1698. 17--text--32--text--01
  1699. 17--text--32--text--01
  1700. 17--text--32--text--01
  1701. 17--text--32--text--01
  1702. 17--text--32--text--01
  1703. 17--text--32--text--01
  1704. 17--text--32--text--01
  1705. 17--text--32--text--01
  1706. 17--text--32--text--01
  1707. 17--text--32--text--01
  1708. 17--text--32--text--01
  1709. 17--text--32--text--01
  1710. 17--text--32--text--01
  1711. 17--text--32--text--01
  1712. 17--text--32--text--01
  1713. 17--text--32--text--01
  1714. 17--text--32--text--01
  1715. 17--text--32--text--01
  1716. 17--text--32--text--01
  1717. 17--text--32--text--01
  1718. 17--text--32--text--01
  1719. 17--text--32--text--01
  1720. 17--text--32--text--01
  1721. 17--text--32--text--01
  1722. 17--text--32--text--01
  1723. 17--text--32--text--01
  1724. 17--text--32--text--01
  1725. 17--text--32--text--01
  1726. (66 rows)
  1727. SELECT to_char(d1, 'YYYYTH YYYYth Jth')
  1728. FROM TIMESTAMPTZ_TBL;
  1729. to_char
  1730. -------------------------
  1731. 1969TH 1969th 2440587th
  1732. 1997TH 1997th 2450490th
  1733. 1997TH 1997th 2450490th
  1734. 1997TH 1997th 2450490th
  1735. 1997TH 1997th 2450490th
  1736. 1997TH 1997th 2450490th
  1737. 1997TH 1997th 2450490th
  1738. 1997TH 1997th 2450451st
  1739. 1997TH 1997th 2450451st
  1740. 1997TH 1997th 2450490th
  1741. 1997TH 1997th 2450490th
  1742. 1997TH 1997th 2450490th
  1743. 1997TH 1997th 2450490th
  1744. 1997TH 1997th 2450610th
  1745. 2001ST 2001st 2452175th
  1746. 2000TH 2000th 2451619th
  1747. 2000TH 2000th 2451619th
  1748. 2000TH 2000th 2451619th
  1749. 2000TH 2000th 2451619th
  1750. 2000TH 2000th 2451619th
  1751. 1997TH 1997th 2450490th
  1752. 1997TH 1997th 2450490th
  1753. 1997TH 1997th 2450490th
  1754. 1997TH 1997th 2450490th
  1755. 1997TH 1997th 2450490th
  1756. 1997TH 1997th 2450490th
  1757. 1997TH 1997th 2450490th
  1758. 1997TH 1997th 2450490th
  1759. 1997TH 1997th 2450490th
  1760. 1997TH 1997th 2450490th
  1761. 1997TH 1997th 2450490th
  1762. 1997TH 1997th 2450490th
  1763. 1997TH 1997th 2450640th
  1764. 1997TH 1997th 2450610th
  1765. 1997TH 1997th 2450490th
  1766. 1997TH 1997th 2450491st
  1767. 1997TH 1997th 2450492nd
  1768. 1997TH 1997th 2450493rd
  1769. 1997TH 1997th 2450494th
  1770. 1997TH 1997th 2450495th
  1771. 1997TH 1997th 2450496th
  1772. 0097TH 0097th 1686042nd
  1773. 0097TH 0097th 1756536th
  1774. 0597TH 0597th 1939157th
  1775. 1097TH 1097th 2121778th
  1776. 1697TH 1697th 2340924th
  1777. 1797TH 1797th 2377448th
  1778. 1897TH 1897th 2413972nd
  1779. 1997TH 1997th 2450496th
  1780. 2097TH 2097th 2487021st
  1781. 1996TH 1996th 2450142nd
  1782. 1996TH 1996th 2450143rd
  1783. 1996TH 1996th 2450144th
  1784. 1996TH 1996th 2450448th
  1785. 1996TH 1996th 2450449th
  1786. 1997TH 1997th 2450450th
  1787. 1997TH 1997th 2450508th
  1788. 1997TH 1997th 2450509th
  1789. 1997TH 1997th 2450813th
  1790. 1997TH 1997th 2450814th
  1791. 1999TH 1999th 2451544th
  1792. 2000TH 2000th 2451545th
  1793. 2000TH 2000th 2451910th
  1794. 2001ST 2001st 2451911th
  1795. (66 rows)
  1796. 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')
  1797. FROM TIMESTAMPTZ_TBL;
  1798. to_char
  1799. ---------------------------------------------------------------------
  1800. 1969 A.D. 1969 a.d. 1969 ad 04:00:00 P.M. 04:00:00 p.m. 04:00:00 pm
  1801. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1802. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1803. 1997 A.D. 1997 a.d. 1997 ad 05:32:02 P.M. 05:32:02 p.m. 05:32:02 pm
  1804. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1805. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1806. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1807. 1997 A.D. 1997 a.d. 1997 ad 12:00:00 A.M. 12:00:00 a.m. 12:00:00 am
  1808. 1997 A.D. 1997 a.d. 1997 ad 03:04:05 A.M. 03:04:05 a.m. 03:04:05 am
  1809. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1810. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1811. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1812. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1813. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1814. 2001 A.D. 2001 a.d. 2001 ad 06:19:20 P.M. 06:19:20 p.m. 06:19:20 pm
  1815. 2000 A.D. 2000 a.d. 2000 ad 08:14:01 A.M. 08:14:01 a.m. 08:14:01 am
  1816. 2000 A.D. 2000 a.d. 2000 ad 04:14:02 A.M. 04:14:02 a.m. 04:14:02 am
  1817. 2000 A.D. 2000 a.d. 2000 ad 02:14:03 A.M. 02:14:03 a.m. 02:14:03 am
  1818. 2000 A.D. 2000 a.d. 2000 ad 03:14:04 A.M. 03:14:04 a.m. 03:14:04 am
  1819. 2000 A.D. 2000 a.d. 2000 ad 01:14:05 A.M. 01:14:05 a.m. 01:14:05 am
  1820. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1821. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1822. 1997 A.D. 1997 a.d. 1997 ad 05:32:00 P.M. 05:32:00 p.m. 05:32:00 pm
  1823. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1824. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1825. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1826. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1827. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1828. 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am
  1829. 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am
  1830. 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am
  1831. 1997 A.D. 1997 a.d. 1997 ad 02:32:01 P.M. 02:32:01 p.m. 02:32:01 pm
  1832. 1997 A.D. 1997 a.d. 1997 ad 02:32:01 P.M. 02:32:01 p.m. 02:32:01 pm
  1833. 1997 A.D. 1997 a.d. 1997 ad 06:32:01 P.M. 06:32:01 p.m. 06:32:01 pm
  1834. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1835. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1836. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1837. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1838. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1839. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1840. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1841. 0097 B.C. 0097 b.c. 0097 bc 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1842. 0097 A.D. 0097 a.d. 0097 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1843. 0597 A.D. 0597 a.d. 0597 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1844. 1097 A.D. 1097 a.d. 1097 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1845. 1697 A.D. 1697 a.d. 1697 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1846. 1797 A.D. 1797 a.d. 1797 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1847. 1897 A.D. 1897 a.d. 1897 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1848. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1849. 2097 A.D. 2097 a.d. 2097 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1850. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1851. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1852. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1853. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1854. 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1855. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1856. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1857. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1858. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1859. 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1860. 1999 A.D. 1999 a.d. 1999 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1861. 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1862. 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1863. 2001 A.D. 2001 a.d. 2001 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
  1864. (66 rows)
  1865. SELECT to_char(d1, 'IYYY IYY IY I IW IDDD ID')
  1866. FROM TIMESTAMPTZ_TBL;
  1867. to_char
  1868. ------------------------
  1869. 1970 970 70 0 01 003 3
  1870. 1997 997 97 7 07 043 1
  1871. 1997 997 97 7 07 043 1
  1872. 1997 997 97 7 07 043 1
  1873. 1997 997 97 7 07 043 1
  1874. 1997 997 97 7 07 043 1
  1875. 1997 997 97 7 07 043 1
  1876. 1997 997 97 7 01 004 4
  1877. 1997 997 97 7 01 004 4
  1878. 1997 997 97 7 07 043 1
  1879. 1997 997 97 7 07 043 1
  1880. 1997 997 97 7 07 043 1
  1881. 1997 997 97 7 07 043 1
  1882. 1997 997 97 7 24 163 2
  1883. 2001 001 01 1 38 265 6
  1884. 2000 000 00 0 11 073 3
  1885. 2000 000 00 0 11 073 3
  1886. 2000 000 00 0 11 073 3
  1887. 2000 000 00 0 11 073 3
  1888. 2000 000 00 0 11 073 3
  1889. 1997 997 97 7 07 043 1
  1890. 1997 997 97 7 07 043 1
  1891. 1997 997 97 7 07 043 1
  1892. 1997 997 97 7 07 043 1
  1893. 1997 997 97 7 07 043 1
  1894. 1997 997 97 7 07 043 1
  1895. 1997 997 97 7 07 043 1
  1896. 1997 997 97 7 07 043 1
  1897. 1997 997 97 7 07 043 1
  1898. 1997 997 97 7 07 043 1
  1899. 1997 997 97 7 07 043 1
  1900. 1997 997 97 7 07 043 1
  1901. 1997 997 97 7 28 193 4
  1902. 1997 997 97 7 24 163 2
  1903. 1997 997 97 7 07 043 1
  1904. 1997 997 97 7 07 044 2
  1905. 1997 997 97 7 07 045 3
  1906. 1997 997 97 7 07 046 4
  1907. 1997 997 97 7 07 047 5
  1908. 1997 997 97 7 07 048 6
  1909. 1997 997 97 7 07 049 7
  1910. 0097 097 97 7 07 044 2
  1911. 0097 097 97 7 07 048 6
  1912. 0597 597 97 7 07 046 4
  1913. 1097 097 97 7 07 044 2
  1914. 1697 697 97 7 07 048 6
  1915. 1797 797 97 7 07 046 4
  1916. 1897 897 97 7 07 044 2
  1917. 1997 997 97 7 07 049 7
  1918. 2097 097 97 7 07 048 6
  1919. 1996 996 96 6 09 059 3
  1920. 1996 996 96 6 09 060 4
  1921. 1996 996 96 6 09 061 5
  1922. 1997 997 97 7 01 001 1
  1923. 1997 997 97 7 01 002 2
  1924. 1997 997 97 7 01 003 3
  1925. 1997 997 97 7 09 061 5
  1926. 1997 997 97 7 09 062 6
  1927. 1998 998 98 8 01 002 2
  1928. 1998 998 98 8 01 003 3
  1929. 1999 999 99 9 52 362 5
  1930. 1999 999 99 9 52 363 6
  1931. 2000 000 00 0 52 364 7
  1932. 2001 001 01 1 01 001 1
  1933. (66 rows)
  1934. SELECT to_char(d1, 'FMIYYY FMIYY FMIY FMI FMIW FMIDDD FMID')
  1935. FROM TIMESTAMPTZ_TBL;
  1936. to_char
  1937. ------------------------
  1938. 1970 970 70 0 1 3 3
  1939. 1997 997 97 7 7 43 1
  1940. 1997 997 97 7 7 43 1
  1941. 1997 997 97 7 7 43 1
  1942. 1997 997 97 7 7 43 1
  1943. 1997 997 97 7 7 43 1
  1944. 1997 997 97 7 7 43 1
  1945. 1997 997 97 7 1 4 4
  1946. 1997 997 97 7 1 4 4
  1947. 1997 997 97 7 7 43 1
  1948. 1997 997 97 7 7 43 1
  1949. 1997 997 97 7 7 43 1
  1950. 1997 997 97 7 7 43 1
  1951. 1997 997 97 7 24 163 2
  1952. 2001 1 1 1 38 265 6
  1953. 2000 0 0 0 11 73 3
  1954. 2000 0 0 0 11 73 3
  1955. 2000 0 0 0 11 73 3
  1956. 2000 0 0 0 11 73 3
  1957. 2000 0 0 0 11 73 3
  1958. 1997 997 97 7 7 43 1
  1959. 1997 997 97 7 7 43 1
  1960. 1997 997 97 7 7 43 1
  1961. 1997 997 97 7 7 43 1
  1962. 1997 997 97 7 7 43 1
  1963. 1997 997 97 7 7 43 1
  1964. 1997 997 97 7 7 43 1
  1965. 1997 997 97 7 7 43 1
  1966. 1997 997 97 7 7 43 1
  1967. 1997 997 97 7 7 43 1
  1968. 1997 997 97 7 7 43 1
  1969. 1997 997 97 7 7 43 1
  1970. 1997 997 97 7 28 193 4
  1971. 1997 997 97 7 24 163 2
  1972. 1997 997 97 7 7 43 1
  1973. 1997 997 97 7 7 44 2
  1974. 1997 997 97 7 7 45 3
  1975. 1997 997 97 7 7 46 4
  1976. 1997 997 97 7 7 47 5
  1977. 1997 997 97 7 7 48 6
  1978. 1997 997 97 7 7 49 7
  1979. 97 97 97 7 7 44 2
  1980. 97 97 97 7 7 48 6
  1981. 597 597 97 7 7 46 4
  1982. 1097 97 97 7 7 44 2
  1983. 1697 697 97 7 7 48 6
  1984. 1797 797 97 7 7 46 4
  1985. 1897 897 97 7 7 44 2
  1986. 1997 997 97 7 7 49 7
  1987. 2097 97 97 7 7 48 6
  1988. 1996 996 96 6 9 59 3
  1989. 1996 996 96 6 9 60 4
  1990. 1996 996 96 6 9 61 5
  1991. 1997 997 97 7 1 1 1
  1992. 1997 997 97 7 1 2 2
  1993. 1997 997 97 7 1 3 3
  1994. 1997 997 97 7 9 61 5
  1995. 1997 997 97 7 9 62 6
  1996. 1998 998 98 8 1 2 2
  1997. 1998 998 98 8 1 3 3
  1998. 1999 999 99 9 52 362 5
  1999. 1999 999 99 9 52 363 6
  2000. 2000 0 0 0 52 364 7
  2001. 2001 1 1 1 1 1 1
  2002. (66 rows)
  2003. SELECT to_char(d, 'FF1 FF2 FF3 FF4 FF5 FF6 ff1 ff2 ff3 ff4 ff5 ff6 MS US')
  2004. FROM (VALUES
  2005. ('2018-11-02 12:34:56'::timestamptz),
  2006. ('2018-11-02 12:34:56.78'),
  2007. ('2018-11-02 12:34:56.78901'),
  2008. ('2018-11-02 12:34:56.78901234')
  2009. ) d(d);
  2010. to_char
  2011. --------------------------------------------------------------------
  2012. 0 00 000 0000 00000 000000 0 00 000 0000 00000 000000 000 000000
  2013. 7 78 780 7800 78000 780000 7 78 780 7800 78000 780000 780 780000
  2014. 7 78 789 7890 78901 789010 7 78 789 7890 78901 789010 789 789010
  2015. 7 78 789 7890 78901 789012 7 78 789 7890 78901 789012 789 789012
  2016. (4 rows)
  2017. -- Check OF, TZH, TZM with various zone offsets, particularly fractional hours
  2018. SET timezone = '00:00';
  2019. SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM";
  2020. OF | TZH:TZM
  2021. -----+---------
  2022. +00 | +00:00
  2023. (1 row)
  2024. SET timezone = '+02:00';
  2025. SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM";
  2026. OF | TZH:TZM
  2027. -----+---------
  2028. -02 | -02:00
  2029. (1 row)
  2030. SET timezone = '-13:00';
  2031. SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM";
  2032. OF | TZH:TZM
  2033. -----+---------
  2034. +13 | +13:00
  2035. (1 row)
  2036. SET timezone = '-00:30';
  2037. SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM";
  2038. OF | TZH:TZM
  2039. --------+---------
  2040. +00:30 | +00:30
  2041. (1 row)
  2042. SET timezone = '00:30';
  2043. SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM";
  2044. OF | TZH:TZM
  2045. --------+---------
  2046. -00:30 | -00:30
  2047. (1 row)
  2048. SET timezone = '-04:30';
  2049. SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM";
  2050. OF | TZH:TZM
  2051. --------+---------
  2052. +04:30 | +04:30
  2053. (1 row)
  2054. SET timezone = '04:30';
  2055. SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM";
  2056. OF | TZH:TZM
  2057. --------+---------
  2058. -04:30 | -04:30
  2059. (1 row)
  2060. SET timezone = '-04:15';
  2061. SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM";
  2062. OF | TZH:TZM
  2063. --------+---------
  2064. +04:15 | +04:15
  2065. (1 row)
  2066. SET timezone = '04:15';
  2067. SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM";
  2068. OF | TZH:TZM
  2069. --------+---------
  2070. -04:15 | -04:15
  2071. (1 row)
  2072. RESET timezone;
  2073. CREATE TABLE TIMESTAMPTZ_TST (a int , b timestamptz);
  2074. -- Test year field value with len > 4
  2075. INSERT INTO TIMESTAMPTZ_TST VALUES(1, 'Sat Mar 12 23:58:48 1000 IST');
  2076. INSERT INTO TIMESTAMPTZ_TST VALUES(2, 'Sat Mar 12 23:58:48 10000 IST');
  2077. INSERT INTO TIMESTAMPTZ_TST VALUES(3, 'Sat Mar 12 23:58:48 100000 IST');
  2078. INSERT INTO TIMESTAMPTZ_TST VALUES(3, '10000 Mar 12 23:58:48 IST');
  2079. INSERT INTO TIMESTAMPTZ_TST VALUES(4, '100000312 23:58:48 IST');
  2080. INSERT INTO TIMESTAMPTZ_TST VALUES(4, '1000000312 23:58:48 IST');
  2081. --Verify data
  2082. SELECT * FROM TIMESTAMPTZ_TST ORDER BY a;
  2083. a | b
  2084. ---+--------------------------------
  2085. 1 | Wed Mar 12 13:58:48 1000 PST
  2086. 2 | Sun Mar 12 14:58:48 10000 PDT
  2087. 3 | Sun Mar 12 14:58:48 100000 PDT
  2088. 3 | Sun Mar 12 14:58:48 10000 PDT
  2089. 4 | Sun Mar 12 14:58:48 10000 PDT
  2090. 4 | Sun Mar 12 14:58:48 100000 PDT
  2091. (6 rows)
  2092. --Cleanup
  2093. DROP TABLE TIMESTAMPTZ_TST;
  2094. -- test timestamptz constructors
  2095. set TimeZone to 'America/New_York';
  2096. -- numeric timezone
  2097. SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33);
  2098. make_timestamptz
  2099. ---------------------------------
  2100. Sun Jul 15 08:15:55.33 1973 EDT
  2101. (1 row)
  2102. SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33, '+2');
  2103. make_timestamptz
  2104. ---------------------------------
  2105. Sun Jul 15 02:15:55.33 1973 EDT
  2106. (1 row)
  2107. SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33, '-2');
  2108. make_timestamptz
  2109. ---------------------------------
  2110. Sun Jul 15 06:15:55.33 1973 EDT
  2111. (1 row)
  2112. WITH tzs (tz) AS (VALUES
  2113. ('+1'), ('+1:'), ('+1:0'), ('+100'), ('+1:00'), ('+01:00'),
  2114. ('+10'), ('+1000'), ('+10:'), ('+10:0'), ('+10:00'), ('+10:00:'),
  2115. ('+10:00:1'), ('+10:00:01'),
  2116. ('+10:00:10'))
  2117. SELECT make_timestamptz(2010, 2, 27, 3, 45, 00, tz), tz FROM tzs;
  2118. make_timestamptz | tz
  2119. ------------------------------+-----------
  2120. Fri Feb 26 21:45:00 2010 EST | +1
  2121. Fri Feb 26 21:45:00 2010 EST | +1:
  2122. Fri Feb 26 21:45:00 2010 EST | +1:0
  2123. Fri Feb 26 21:45:00 2010 EST | +100
  2124. Fri Feb 26 21:45:00 2010 EST | +1:00
  2125. Fri Feb 26 21:45:00 2010 EST | +01:00
  2126. Fri Feb 26 12:45:00 2010 EST | +10
  2127. Fri Feb 26 12:45:00 2010 EST | +1000
  2128. Fri Feb 26 12:45:00 2010 EST | +10:
  2129. Fri Feb 26 12:45:00 2010 EST | +10:0
  2130. Fri Feb 26 12:45:00 2010 EST | +10:00
  2131. Fri Feb 26 12:45:00 2010 EST | +10:00:
  2132. Fri Feb 26 12:44:59 2010 EST | +10:00:1
  2133. Fri Feb 26 12:44:59 2010 EST | +10:00:01
  2134. Fri Feb 26 12:44:50 2010 EST | +10:00:10
  2135. (15 rows)
  2136. -- these should fail
  2137. SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33, '2');
  2138. ERROR: invalid input syntax for type numeric time zone: "2"
  2139. HINT: Numeric time zones must have "-" or "+" as first character.
  2140. SELECT make_timestamptz(2014, 12, 10, 10, 10, 10, '+16');
  2141. ERROR: numeric time zone "+16" out of range
  2142. SELECT make_timestamptz(2014, 12, 10, 10, 10, 10, '-16');
  2143. ERROR: numeric time zone "-16" out of range
  2144. -- should be true
  2145. SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33, '+2') = '1973-07-15 08:15:55.33+02'::timestamptz;
  2146. ?column?
  2147. ----------
  2148. t
  2149. (1 row)
  2150. -- full timezone names
  2151. SELECT make_timestamptz(2014, 12, 10, 0, 0, 0, 'Europe/Prague') = timestamptz '2014-12-10 00:00:00 Europe/Prague';
  2152. ?column?
  2153. ----------
  2154. t
  2155. (1 row)
  2156. SELECT make_timestamptz(2014, 12, 10, 0, 0, 0, 'Europe/Prague') AT TIME ZONE 'UTC';
  2157. timezone
  2158. --------------------------
  2159. Tue Dec 09 23:00:00 2014
  2160. (1 row)
  2161. SELECT make_timestamptz(1846, 12, 10, 0, 0, 0, 'Asia/Manila') AT TIME ZONE 'UTC';
  2162. timezone
  2163. --------------------------
  2164. Wed Dec 09 15:56:00 1846
  2165. (1 row)
  2166. SELECT make_timestamptz(1881, 12, 10, 0, 0, 0, 'Europe/Paris') AT TIME ZONE 'UTC';
  2167. timezone
  2168. --------------------------
  2169. Fri Dec 09 23:50:39 1881
  2170. (1 row)
  2171. SELECT make_timestamptz(1910, 12, 24, 0, 0, 0, 'Nehwon/Lankhmar');
  2172. ERROR: time zone "Nehwon/Lankhmar" not recognized
  2173. -- abbreviations
  2174. SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'EST');
  2175. make_timestamptz
  2176. ------------------------------
  2177. Wed Dec 10 10:10:10 2008 EST
  2178. (1 row)
  2179. SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'EDT');
  2180. make_timestamptz
  2181. ------------------------------
  2182. Wed Dec 10 09:10:10 2008 EST
  2183. (1 row)
  2184. SELECT make_timestamptz(2014, 12, 10, 10, 10, 10, 'PST8PDT');
  2185. make_timestamptz
  2186. ------------------------------
  2187. Wed Dec 10 13:10:10 2014 EST
  2188. (1 row)
  2189. RESET TimeZone;
  2190. -- generate_series for timestamptz
  2191. select * from generate_series('2020-01-01 00:00'::timestamptz,
  2192. '2020-01-02 03:00'::timestamptz,
  2193. '1 hour'::interval);
  2194. generate_series
  2195. ------------------------------
  2196. Wed Jan 01 00:00:00 2020 PST
  2197. Wed Jan 01 01:00:00 2020 PST
  2198. Wed Jan 01 02:00:00 2020 PST
  2199. Wed Jan 01 03:00:00 2020 PST
  2200. Wed Jan 01 04:00:00 2020 PST
  2201. Wed Jan 01 05:00:00 2020 PST
  2202. Wed Jan 01 06:00:00 2020 PST
  2203. Wed Jan 01 07:00:00 2020 PST
  2204. Wed Jan 01 08:00:00 2020 PST
  2205. Wed Jan 01 09:00:00 2020 PST
  2206. Wed Jan 01 10:00:00 2020 PST
  2207. Wed Jan 01 11:00:00 2020 PST
  2208. Wed Jan 01 12:00:00 2020 PST
  2209. Wed Jan 01 13:00:00 2020 PST
  2210. Wed Jan 01 14:00:00 2020 PST
  2211. Wed Jan 01 15:00:00 2020 PST
  2212. Wed Jan 01 16:00:00 2020 PST
  2213. Wed Jan 01 17:00:00 2020 PST
  2214. Wed Jan 01 18:00:00 2020 PST
  2215. Wed Jan 01 19:00:00 2020 PST
  2216. Wed Jan 01 20:00:00 2020 PST
  2217. Wed Jan 01 21:00:00 2020 PST
  2218. Wed Jan 01 22:00:00 2020 PST
  2219. Wed Jan 01 23:00:00 2020 PST
  2220. Thu Jan 02 00:00:00 2020 PST
  2221. Thu Jan 02 01:00:00 2020 PST
  2222. Thu Jan 02 02:00:00 2020 PST
  2223. Thu Jan 02 03:00:00 2020 PST
  2224. (28 rows)
  2225. -- the LIMIT should allow this to terminate in a reasonable amount of time
  2226. -- (but that unfortunately doesn't work yet for SELECT * FROM ...)
  2227. select generate_series('2022-01-01 00:00'::timestamptz,
  2228. 'infinity'::timestamptz,
  2229. '1 month'::interval) limit 10;
  2230. generate_series
  2231. ------------------------------
  2232. Sat Jan 01 00:00:00 2022 PST
  2233. Tue Feb 01 00:00:00 2022 PST
  2234. Tue Mar 01 00:00:00 2022 PST
  2235. Fri Apr 01 00:00:00 2022 PDT
  2236. Sun May 01 00:00:00 2022 PDT
  2237. Wed Jun 01 00:00:00 2022 PDT
  2238. Fri Jul 01 00:00:00 2022 PDT
  2239. Mon Aug 01 00:00:00 2022 PDT
  2240. Thu Sep 01 00:00:00 2022 PDT
  2241. Sat Oct 01 00:00:00 2022 PDT
  2242. (10 rows)
  2243. -- errors
  2244. select * from generate_series('2020-01-01 00:00'::timestamptz,
  2245. '2020-01-02 03:00'::timestamptz,
  2246. '0 hour'::interval);
  2247. ERROR: step size cannot equal zero
  2248. --
  2249. -- Test behavior with a dynamic (time-varying) timezone abbreviation.
  2250. -- These tests rely on the knowledge that MSK (Europe/Moscow standard time)
  2251. -- moved forwards in Mar 2011 and backwards again in Oct 2014.
  2252. --
  2253. SET TimeZone to 'UTC';
  2254. SELECT '2011-03-27 00:00:00 Europe/Moscow'::timestamptz;
  2255. timestamptz
  2256. ------------------------------
  2257. Sat Mar 26 21:00:00 2011 UTC
  2258. (1 row)
  2259. SELECT '2011-03-27 01:00:00 Europe/Moscow'::timestamptz;
  2260. timestamptz
  2261. ------------------------------
  2262. Sat Mar 26 22:00:00 2011 UTC
  2263. (1 row)
  2264. SELECT '2011-03-27 01:59:59 Europe/Moscow'::timestamptz;
  2265. timestamptz
  2266. ------------------------------
  2267. Sat Mar 26 22:59:59 2011 UTC
  2268. (1 row)
  2269. SELECT '2011-03-27 02:00:00 Europe/Moscow'::timestamptz;
  2270. timestamptz
  2271. ------------------------------
  2272. Sat Mar 26 23:00:00 2011 UTC
  2273. (1 row)
  2274. SELECT '2011-03-27 02:00:01 Europe/Moscow'::timestamptz;
  2275. timestamptz
  2276. ------------------------------
  2277. Sat Mar 26 23:00:01 2011 UTC
  2278. (1 row)
  2279. SELECT '2011-03-27 02:59:59 Europe/Moscow'::timestamptz;
  2280. timestamptz
  2281. ------------------------------
  2282. Sat Mar 26 23:59:59 2011 UTC
  2283. (1 row)
  2284. SELECT '2011-03-27 03:00:00 Europe/Moscow'::timestamptz;
  2285. timestamptz
  2286. ------------------------------
  2287. Sat Mar 26 23:00:00 2011 UTC
  2288. (1 row)
  2289. SELECT '2011-03-27 03:00:01 Europe/Moscow'::timestamptz;
  2290. timestamptz
  2291. ------------------------------
  2292. Sat Mar 26 23:00:01 2011 UTC
  2293. (1 row)
  2294. SELECT '2011-03-27 04:00:00 Europe/Moscow'::timestamptz;
  2295. timestamptz
  2296. ------------------------------
  2297. Sun Mar 27 00:00:00 2011 UTC
  2298. (1 row)
  2299. SELECT '2011-03-27 00:00:00 MSK'::timestamptz;
  2300. timestamptz
  2301. ------------------------------
  2302. Sat Mar 26 21:00:00 2011 UTC
  2303. (1 row)
  2304. SELECT '2011-03-27 01:00:00 MSK'::timestamptz;
  2305. timestamptz
  2306. ------------------------------
  2307. Sat Mar 26 22:00:00 2011 UTC
  2308. (1 row)
  2309. SELECT '2011-03-27 01:59:59 MSK'::timestamptz;
  2310. timestamptz
  2311. ------------------------------
  2312. Sat Mar 26 22:59:59 2011 UTC
  2313. (1 row)
  2314. SELECT '2011-03-27 02:00:00 MSK'::timestamptz;
  2315. timestamptz
  2316. ------------------------------
  2317. Sat Mar 26 22:00:00 2011 UTC
  2318. (1 row)
  2319. SELECT '2011-03-27 02:00:01 MSK'::timestamptz;
  2320. timestamptz
  2321. ------------------------------
  2322. Sat Mar 26 22:00:01 2011 UTC
  2323. (1 row)
  2324. SELECT '2011-03-27 02:59:59 MSK'::timestamptz;
  2325. timestamptz
  2326. ------------------------------
  2327. Sat Mar 26 22:59:59 2011 UTC
  2328. (1 row)
  2329. SELECT '2011-03-27 03:00:00 MSK'::timestamptz;
  2330. timestamptz
  2331. ------------------------------
  2332. Sat Mar 26 23:00:00 2011 UTC
  2333. (1 row)
  2334. SELECT '2011-03-27 03:00:01 MSK'::timestamptz;
  2335. timestamptz
  2336. ------------------------------
  2337. Sat Mar 26 23:00:01 2011 UTC
  2338. (1 row)
  2339. SELECT '2011-03-27 04:00:00 MSK'::timestamptz;
  2340. timestamptz
  2341. ------------------------------
  2342. Sun Mar 27 00:00:00 2011 UTC
  2343. (1 row)
  2344. SELECT '2014-10-26 00:00:00 Europe/Moscow'::timestamptz;
  2345. timestamptz
  2346. ------------------------------
  2347. Sat Oct 25 20:00:00 2014 UTC
  2348. (1 row)
  2349. SELECT '2014-10-26 00:59:59 Europe/Moscow'::timestamptz;
  2350. timestamptz
  2351. ------------------------------
  2352. Sat Oct 25 20:59:59 2014 UTC
  2353. (1 row)
  2354. SELECT '2014-10-26 01:00:00 Europe/Moscow'::timestamptz;
  2355. timestamptz
  2356. ------------------------------
  2357. Sat Oct 25 22:00:00 2014 UTC
  2358. (1 row)
  2359. SELECT '2014-10-26 01:00:01 Europe/Moscow'::timestamptz;
  2360. timestamptz
  2361. ------------------------------
  2362. Sat Oct 25 22:00:01 2014 UTC
  2363. (1 row)
  2364. SELECT '2014-10-26 02:00:00 Europe/Moscow'::timestamptz;
  2365. timestamptz
  2366. ------------------------------
  2367. Sat Oct 25 23:00:00 2014 UTC
  2368. (1 row)
  2369. SELECT '2014-10-26 00:00:00 MSK'::timestamptz;
  2370. timestamptz
  2371. ------------------------------
  2372. Sat Oct 25 20:00:00 2014 UTC
  2373. (1 row)
  2374. SELECT '2014-10-26 00:59:59 MSK'::timestamptz;
  2375. timestamptz
  2376. ------------------------------
  2377. Sat Oct 25 20:59:59 2014 UTC
  2378. (1 row)
  2379. SELECT '2014-10-26 01:00:00 MSK'::timestamptz;
  2380. timestamptz
  2381. ------------------------------
  2382. Sat Oct 25 22:00:00 2014 UTC
  2383. (1 row)
  2384. SELECT '2014-10-26 01:00:01 MSK'::timestamptz;
  2385. timestamptz
  2386. ------------------------------
  2387. Sat Oct 25 22:00:01 2014 UTC
  2388. (1 row)
  2389. SELECT '2014-10-26 02:00:00 MSK'::timestamptz;
  2390. timestamptz
  2391. ------------------------------
  2392. Sat Oct 25 23:00:00 2014 UTC
  2393. (1 row)
  2394. SELECT '2011-03-27 00:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
  2395. timezone
  2396. ------------------------------
  2397. Sat Mar 26 21:00:00 2011 UTC
  2398. (1 row)
  2399. SELECT '2011-03-27 01:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
  2400. timezone
  2401. ------------------------------
  2402. Sat Mar 26 22:00:00 2011 UTC
  2403. (1 row)
  2404. SELECT '2011-03-27 01:59:59'::timestamp AT TIME ZONE 'Europe/Moscow';
  2405. timezone
  2406. ------------------------------
  2407. Sat Mar 26 22:59:59 2011 UTC
  2408. (1 row)
  2409. SELECT '2011-03-27 02:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
  2410. timezone
  2411. ------------------------------
  2412. Sat Mar 26 23:00:00 2011 UTC
  2413. (1 row)
  2414. SELECT '2011-03-27 02:00:01'::timestamp AT TIME ZONE 'Europe/Moscow';
  2415. timezone
  2416. ------------------------------
  2417. Sat Mar 26 23:00:01 2011 UTC
  2418. (1 row)
  2419. SELECT '2011-03-27 02:59:59'::timestamp AT TIME ZONE 'Europe/Moscow';
  2420. timezone
  2421. ------------------------------
  2422. Sat Mar 26 23:59:59 2011 UTC
  2423. (1 row)
  2424. SELECT '2011-03-27 03:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
  2425. timezone
  2426. ------------------------------
  2427. Sat Mar 26 23:00:00 2011 UTC
  2428. (1 row)
  2429. SELECT '2011-03-27 03:00:01'::timestamp AT TIME ZONE 'Europe/Moscow';
  2430. timezone
  2431. ------------------------------
  2432. Sat Mar 26 23:00:01 2011 UTC
  2433. (1 row)
  2434. SELECT '2011-03-27 04:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
  2435. timezone
  2436. ------------------------------
  2437. Sun Mar 27 00:00:00 2011 UTC
  2438. (1 row)
  2439. SELECT '2011-03-27 00:00:00'::timestamp AT TIME ZONE 'MSK';
  2440. timezone
  2441. ------------------------------
  2442. Sat Mar 26 21:00:00 2011 UTC
  2443. (1 row)
  2444. SELECT '2011-03-27 01:00:00'::timestamp AT TIME ZONE 'MSK';
  2445. timezone
  2446. ------------------------------
  2447. Sat Mar 26 22:00:00 2011 UTC
  2448. (1 row)
  2449. SELECT '2011-03-27 01:59:59'::timestamp AT TIME ZONE 'MSK';
  2450. timezone
  2451. ------------------------------
  2452. Sat Mar 26 22:59:59 2011 UTC
  2453. (1 row)
  2454. SELECT '2011-03-27 02:00:00'::timestamp AT TIME ZONE 'MSK';
  2455. timezone
  2456. ------------------------------
  2457. Sat Mar 26 22:00:00 2011 UTC
  2458. (1 row)
  2459. SELECT '2011-03-27 02:00:01'::timestamp AT TIME ZONE 'MSK';
  2460. timezone
  2461. ------------------------------
  2462. Sat Mar 26 22:00:01 2011 UTC
  2463. (1 row)
  2464. SELECT '2011-03-27 02:59:59'::timestamp AT TIME ZONE 'MSK';
  2465. timezone
  2466. ------------------------------
  2467. Sat Mar 26 22:59:59 2011 UTC
  2468. (1 row)
  2469. SELECT '2011-03-27 03:00:00'::timestamp AT TIME ZONE 'MSK';
  2470. timezone
  2471. ------------------------------
  2472. Sat Mar 26 23:00:00 2011 UTC
  2473. (1 row)
  2474. SELECT '2011-03-27 03:00:01'::timestamp AT TIME ZONE 'MSK';
  2475. timezone
  2476. ------------------------------
  2477. Sat Mar 26 23:00:01 2011 UTC
  2478. (1 row)
  2479. SELECT '2011-03-27 04:00:00'::timestamp AT TIME ZONE 'MSK';
  2480. timezone
  2481. ------------------------------
  2482. Sun Mar 27 00:00:00 2011 UTC
  2483. (1 row)
  2484. SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
  2485. timezone
  2486. ------------------------------
  2487. Sat Oct 25 20:00:00 2014 UTC
  2488. (1 row)
  2489. SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'Europe/Moscow';
  2490. timezone
  2491. ------------------------------
  2492. Sat Oct 25 20:59:59 2014 UTC
  2493. (1 row)
  2494. SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
  2495. timezone
  2496. ------------------------------
  2497. Sat Oct 25 22:00:00 2014 UTC
  2498. (1 row)
  2499. SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'Europe/Moscow';
  2500. timezone
  2501. ------------------------------
  2502. Sat Oct 25 22:00:01 2014 UTC
  2503. (1 row)
  2504. SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
  2505. timezone
  2506. ------------------------------
  2507. Sat Oct 25 23:00:00 2014 UTC
  2508. (1 row)
  2509. SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'MSK';
  2510. timezone
  2511. ------------------------------
  2512. Sat Oct 25 20:00:00 2014 UTC
  2513. (1 row)
  2514. SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'MSK';
  2515. timezone
  2516. ------------------------------
  2517. Sat Oct 25 20:59:59 2014 UTC
  2518. (1 row)
  2519. SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'MSK';
  2520. timezone
  2521. ------------------------------
  2522. Sat Oct 25 22:00:00 2014 UTC
  2523. (1 row)
  2524. SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'MSK';
  2525. timezone
  2526. ------------------------------
  2527. Sat Oct 25 22:00:01 2014 UTC
  2528. (1 row)
  2529. SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'MSK';
  2530. timezone
  2531. ------------------------------
  2532. Sat Oct 25 23:00:00 2014 UTC
  2533. (1 row)
  2534. SELECT make_timestamptz(2014, 10, 26, 0, 0, 0, 'MSK');
  2535. make_timestamptz
  2536. ------------------------------
  2537. Sat Oct 25 20:00:00 2014 UTC
  2538. (1 row)
  2539. SELECT make_timestamptz(2014, 10, 26, 1, 0, 0, 'MSK');
  2540. make_timestamptz
  2541. ------------------------------
  2542. Sat Oct 25 22:00:00 2014 UTC
  2543. (1 row)
  2544. SELECT to_timestamp( 0); -- 1970-01-01 00:00:00+00
  2545. to_timestamp
  2546. ------------------------------
  2547. Thu Jan 01 00:00:00 1970 UTC
  2548. (1 row)
  2549. SELECT to_timestamp( 946684800); -- 2000-01-01 00:00:00+00
  2550. to_timestamp
  2551. ------------------------------
  2552. Sat Jan 01 00:00:00 2000 UTC
  2553. (1 row)
  2554. SELECT to_timestamp(1262349296.7890123); -- 2010-01-01 12:34:56.789012+00
  2555. to_timestamp
  2556. -------------------------------------
  2557. Fri Jan 01 12:34:56.789012 2010 UTC
  2558. (1 row)
  2559. -- edge cases
  2560. SELECT to_timestamp(-210866803200); -- 4714-11-24 00:00:00+00 BC
  2561. to_timestamp
  2562. ---------------------------------
  2563. Mon Nov 24 00:00:00 4714 UTC BC
  2564. (1 row)
  2565. -- upper limit varies between integer and float timestamps, so hard to test
  2566. -- nonfinite values
  2567. SELECT to_timestamp(' Infinity'::float);
  2568. to_timestamp
  2569. --------------
  2570. infinity
  2571. (1 row)
  2572. SELECT to_timestamp('-Infinity'::float);
  2573. to_timestamp
  2574. --------------
  2575. -infinity
  2576. (1 row)
  2577. SELECT to_timestamp('NaN'::float);
  2578. ERROR: timestamp cannot be NaN
  2579. SET TimeZone to 'Europe/Moscow';
  2580. SELECT '2011-03-26 21:00:00 UTC'::timestamptz;
  2581. timestamptz
  2582. ------------------------------
  2583. Sun Mar 27 00:00:00 2011 MSK
  2584. (1 row)
  2585. SELECT '2011-03-26 22:00:00 UTC'::timestamptz;
  2586. timestamptz
  2587. ------------------------------
  2588. Sun Mar 27 01:00:00 2011 MSK
  2589. (1 row)
  2590. SELECT '2011-03-26 22:59:59 UTC'::timestamptz;
  2591. timestamptz
  2592. ------------------------------
  2593. Sun Mar 27 01:59:59 2011 MSK
  2594. (1 row)
  2595. SELECT '2011-03-26 23:00:00 UTC'::timestamptz;
  2596. timestamptz
  2597. ------------------------------
  2598. Sun Mar 27 03:00:00 2011 MSK
  2599. (1 row)
  2600. SELECT '2011-03-26 23:00:01 UTC'::timestamptz;
  2601. timestamptz
  2602. ------------------------------
  2603. Sun Mar 27 03:00:01 2011 MSK
  2604. (1 row)
  2605. SELECT '2011-03-26 23:59:59 UTC'::timestamptz;
  2606. timestamptz
  2607. ------------------------------
  2608. Sun Mar 27 03:59:59 2011 MSK
  2609. (1 row)
  2610. SELECT '2011-03-27 00:00:00 UTC'::timestamptz;
  2611. timestamptz
  2612. ------------------------------
  2613. Sun Mar 27 04:00:00 2011 MSK
  2614. (1 row)
  2615. SELECT '2014-10-25 21:00:00 UTC'::timestamptz;
  2616. timestamptz
  2617. ------------------------------
  2618. Sun Oct 26 01:00:00 2014 MSK
  2619. (1 row)
  2620. SELECT '2014-10-25 21:59:59 UTC'::timestamptz;
  2621. timestamptz
  2622. ------------------------------
  2623. Sun Oct 26 01:59:59 2014 MSK
  2624. (1 row)
  2625. SELECT '2014-10-25 22:00:00 UTC'::timestamptz;
  2626. timestamptz
  2627. ------------------------------
  2628. Sun Oct 26 01:00:00 2014 MSK
  2629. (1 row)
  2630. SELECT '2014-10-25 22:00:01 UTC'::timestamptz;
  2631. timestamptz
  2632. ------------------------------
  2633. Sun Oct 26 01:00:01 2014 MSK
  2634. (1 row)
  2635. SELECT '2014-10-25 23:00:00 UTC'::timestamptz;
  2636. timestamptz
  2637. ------------------------------
  2638. Sun Oct 26 02:00:00 2014 MSK
  2639. (1 row)
  2640. RESET TimeZone;
  2641. SELECT '2011-03-26 21:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2642. timezone
  2643. --------------------------
  2644. Sun Mar 27 00:00:00 2011
  2645. (1 row)
  2646. SELECT '2011-03-26 22:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2647. timezone
  2648. --------------------------
  2649. Sun Mar 27 01:00:00 2011
  2650. (1 row)
  2651. SELECT '2011-03-26 22:59:59 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2652. timezone
  2653. --------------------------
  2654. Sun Mar 27 01:59:59 2011
  2655. (1 row)
  2656. SELECT '2011-03-26 23:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2657. timezone
  2658. --------------------------
  2659. Sun Mar 27 03:00:00 2011
  2660. (1 row)
  2661. SELECT '2011-03-26 23:00:01 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2662. timezone
  2663. --------------------------
  2664. Sun Mar 27 03:00:01 2011
  2665. (1 row)
  2666. SELECT '2011-03-26 23:59:59 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2667. timezone
  2668. --------------------------
  2669. Sun Mar 27 03:59:59 2011
  2670. (1 row)
  2671. SELECT '2011-03-27 00:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2672. timezone
  2673. --------------------------
  2674. Sun Mar 27 04:00:00 2011
  2675. (1 row)
  2676. SELECT '2014-10-25 21:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2677. timezone
  2678. --------------------------
  2679. Sun Oct 26 01:00:00 2014
  2680. (1 row)
  2681. SELECT '2014-10-25 21:59:59 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2682. timezone
  2683. --------------------------
  2684. Sun Oct 26 01:59:59 2014
  2685. (1 row)
  2686. SELECT '2014-10-25 22:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2687. timezone
  2688. --------------------------
  2689. Sun Oct 26 01:00:00 2014
  2690. (1 row)
  2691. SELECT '2014-10-25 22:00:01 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2692. timezone
  2693. --------------------------
  2694. Sun Oct 26 01:00:01 2014
  2695. (1 row)
  2696. SELECT '2014-10-25 23:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
  2697. timezone
  2698. --------------------------
  2699. Sun Oct 26 02:00:00 2014
  2700. (1 row)
  2701. SELECT '2011-03-26 21:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
  2702. timezone
  2703. --------------------------
  2704. Sun Mar 27 00:00:00 2011
  2705. (1 row)
  2706. SELECT '2011-03-26 22:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
  2707. timezone
  2708. --------------------------
  2709. Sun Mar 27 01:00:00 2011
  2710. (1 row)
  2711. SELECT '2011-03-26 22:59:59 UTC'::timestamptz AT TIME ZONE 'MSK';
  2712. timezone
  2713. --------------------------
  2714. Sun Mar 27 01:59:59 2011
  2715. (1 row)
  2716. SELECT '2011-03-26 23:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
  2717. timezone
  2718. --------------------------
  2719. Sun Mar 27 03:00:00 2011
  2720. (1 row)
  2721. SELECT '2011-03-26 23:00:01 UTC'::timestamptz AT TIME ZONE 'MSK';
  2722. timezone
  2723. --------------------------
  2724. Sun Mar 27 03:00:01 2011
  2725. (1 row)
  2726. SELECT '2011-03-26 23:59:59 UTC'::timestamptz AT TIME ZONE 'MSK';
  2727. timezone
  2728. --------------------------
  2729. Sun Mar 27 03:59:59 2011
  2730. (1 row)
  2731. SELECT '2011-03-27 00:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
  2732. timezone
  2733. --------------------------
  2734. Sun Mar 27 04:00:00 2011
  2735. (1 row)
  2736. SELECT '2014-10-25 21:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
  2737. timezone
  2738. --------------------------
  2739. Sun Oct 26 01:00:00 2014
  2740. (1 row)
  2741. SELECT '2014-10-25 21:59:59 UTC'::timestamptz AT TIME ZONE 'MSK';
  2742. timezone
  2743. --------------------------
  2744. Sun Oct 26 01:59:59 2014
  2745. (1 row)
  2746. SELECT '2014-10-25 22:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
  2747. timezone
  2748. --------------------------
  2749. Sun Oct 26 01:00:00 2014
  2750. (1 row)
  2751. SELECT '2014-10-25 22:00:01 UTC'::timestamptz AT TIME ZONE 'MSK';
  2752. timezone
  2753. --------------------------
  2754. Sun Oct 26 01:00:01 2014
  2755. (1 row)
  2756. SELECT '2014-10-25 23:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
  2757. timezone
  2758. --------------------------
  2759. Sun Oct 26 02:00:00 2014
  2760. (1 row)
  2761. --
  2762. -- Test that AT TIME ZONE isn't misoptimized when using an index (bug #14504)
  2763. --
  2764. create temp table tmptz (f1 timestamptz primary key);
  2765. insert into tmptz values ('2017-01-18 00:00+00');
  2766. explain (costs off)
  2767. select * from tmptz where f1 at time zone 'utc' = '2017-01-18 00:00';
  2768. QUERY PLAN
  2769. -----------------------------------------------------------------------------------------------------
  2770. Seq Scan on tmptz
  2771. Filter: ((f1 AT TIME ZONE 'utc'::text) = 'Wed Jan 18 00:00:00 2017'::timestamp without time zone)
  2772. (2 rows)
  2773. select * from tmptz where f1 at time zone 'utc' = '2017-01-18 00:00';
  2774. f1
  2775. ------------------------------
  2776. Tue Jan 17 16:00:00 2017 PST
  2777. (1 row)