horology.err 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689
  1. Registering pre-existing tables
  2. TIME_TBL
  3. TIMESTAMPTZ_TBL
  4. TIMESTAMP_TBL
  5. INTERVAL_TBL
  6. TIMETZ_TBL
  7. <sql-statement>
  8. --
  9. -- HOROLOGY
  10. --
  11. SET DateStyle = 'Postgres, MDY';
  12. </sql-statement>
  13. <sql-statement>
  14. SHOW TimeZone; -- Many of these tests depend on the prevailing setting
  15. </sql-statement>
  16. -stdin-:<main>: Error: Parse Sql
  17. -stdin-:<main>:1:1: Error: unrecognized configuration parameter "timezone"
  18. SHOW TimeZone; -- Many of these tests depend on the prevailing setting
  19. ^
  20. <sql-statement>
  21. --
  22. -- Test various input formats
  23. --
  24. SELECT timestamp with time zone '20011227 040506+08';
  25. </sql-statement>
  26. <sql-statement>
  27. SELECT timestamp with time zone '20011227 040506-08';
  28. </sql-statement>
  29. <sql-statement>
  30. SELECT timestamp with time zone '20011227 040506.789+08';
  31. </sql-statement>
  32. <sql-statement>
  33. SELECT timestamp with time zone '20011227 040506.789-08';
  34. </sql-statement>
  35. <sql-statement>
  36. SELECT timestamp with time zone '20011227T040506+08';
  37. </sql-statement>
  38. <sql-statement>
  39. SELECT timestamp with time zone '20011227T040506-08';
  40. </sql-statement>
  41. <sql-statement>
  42. SELECT timestamp with time zone '20011227T040506.789+08';
  43. </sql-statement>
  44. <sql-statement>
  45. SELECT timestamp with time zone '20011227T040506.789-08';
  46. </sql-statement>
  47. <sql-statement>
  48. SELECT timestamp with time zone '2001-12-27 04:05:06.789-08';
  49. </sql-statement>
  50. <sql-statement>
  51. SELECT timestamp with time zone '2001.12.27 04:05:06.789-08';
  52. </sql-statement>
  53. <sql-statement>
  54. SELECT timestamp with time zone '2001/12/27 04:05:06.789-08';
  55. </sql-statement>
  56. <sql-statement>
  57. SELECT timestamp with time zone '12/27/2001 04:05:06.789-08';
  58. </sql-statement>
  59. <sql-statement>
  60. -- should fail in mdy mode:
  61. SELECT timestamp with time zone '27/12/2001 04:05:06.789-08';
  62. </sql-statement>
  63. -stdin-:<main>: Fatal: Execution
  64. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  65. -- should fail in mdy mode:
  66. ^
  67. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "27/12/2001 04:05:06.789-08"
  68. HINT: Perhaps you need a different "datestyle" setting.
  69. -- should fail in mdy mode:
  70. ^
  71. <sql-statement>
  72. set datestyle to dmy;
  73. </sql-statement>
  74. <sql-statement>
  75. SELECT timestamp with time zone '27/12/2001 04:05:06.789-08';
  76. </sql-statement>
  77. -stdin-:<main>: Fatal: Execution
  78. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  79. SELECT timestamp with time zone '27/12/2001 04:05:06.789-08';
  80. ^
  81. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "27/12/2001 04:05:06.789-08"
  82. HINT: Perhaps you need a different "datestyle" setting.
  83. SELECT timestamp with time zone '27/12/2001 04:05:06.789-08';
  84. ^
  85. <sql-statement>
  86. reset datestyle;
  87. </sql-statement>
  88. <sql-statement>
  89. SELECT timestamp with time zone 'Y2001M12D27H04M05S06.789+08';
  90. </sql-statement>
  91. <sql-statement>
  92. SELECT timestamp with time zone 'Y2001M12D27H04M05S06.789-08';
  93. </sql-statement>
  94. <sql-statement>
  95. SELECT timestamp with time zone 'Y2001M12D27H04MM05S06.789+08';
  96. </sql-statement>
  97. <sql-statement>
  98. SELECT timestamp with time zone 'Y2001M12D27H04MM05S06.789-08';
  99. </sql-statement>
  100. <sql-statement>
  101. SELECT timestamp with time zone 'J2452271+08';
  102. </sql-statement>
  103. <sql-statement>
  104. SELECT timestamp with time zone 'J2452271-08';
  105. </sql-statement>
  106. <sql-statement>
  107. SELECT timestamp with time zone 'J2452271.5+08';
  108. </sql-statement>
  109. <sql-statement>
  110. SELECT timestamp with time zone 'J2452271.5-08';
  111. </sql-statement>
  112. <sql-statement>
  113. SELECT timestamp with time zone 'J2452271 04:05:06+08';
  114. </sql-statement>
  115. <sql-statement>
  116. SELECT timestamp with time zone 'J2452271 04:05:06-08';
  117. </sql-statement>
  118. <sql-statement>
  119. SELECT timestamp with time zone 'J2452271T040506+08';
  120. </sql-statement>
  121. <sql-statement>
  122. SELECT timestamp with time zone 'J2452271T040506-08';
  123. </sql-statement>
  124. <sql-statement>
  125. SELECT timestamp with time zone 'J2452271T040506.789+08';
  126. </sql-statement>
  127. <sql-statement>
  128. SELECT timestamp with time zone 'J2452271T040506.789-08';
  129. </sql-statement>
  130. <sql-statement>
  131. -- German/European-style dates with periods as delimiters
  132. SELECT timestamp with time zone '12.27.2001 04:05:06.789+08';
  133. </sql-statement>
  134. <sql-statement>
  135. SELECT timestamp with time zone '12.27.2001 04:05:06.789-08';
  136. </sql-statement>
  137. <sql-statement>
  138. SET DateStyle = 'German';
  139. </sql-statement>
  140. <sql-statement>
  141. SELECT timestamp with time zone '27.12.2001 04:05:06.789+08';
  142. </sql-statement>
  143. -stdin-:<main>: Fatal: Execution
  144. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  145. SELECT timestamp with time zone '27.12.2001 04:05:06.789+08';
  146. ^
  147. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "27.12.2001 04:05:06.789+08"
  148. HINT: Perhaps you need a different "datestyle" setting.
  149. SELECT timestamp with time zone '27.12.2001 04:05:06.789+08';
  150. ^
  151. <sql-statement>
  152. SELECT timestamp with time zone '27.12.2001 04:05:06.789-08';
  153. </sql-statement>
  154. -stdin-:<main>: Fatal: Execution
  155. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  156. SELECT timestamp with time zone '27.12.2001 04:05:06.789-08';
  157. ^
  158. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "27.12.2001 04:05:06.789-08"
  159. HINT: Perhaps you need a different "datestyle" setting.
  160. SELECT timestamp with time zone '27.12.2001 04:05:06.789-08';
  161. ^
  162. <sql-statement>
  163. SET DateStyle = 'ISO';
  164. </sql-statement>
  165. <sql-statement>
  166. -- As of 7.4, allow time without time zone having a time zone specified
  167. SELECT time without time zone '040506.789+08';
  168. </sql-statement>
  169. <sql-statement>
  170. SELECT time without time zone '040506.789-08';
  171. </sql-statement>
  172. <sql-statement>
  173. SELECT time without time zone 'T040506.789+08';
  174. </sql-statement>
  175. <sql-statement>
  176. SELECT time without time zone 'T040506.789-08';
  177. </sql-statement>
  178. <sql-statement>
  179. SELECT time with time zone '040506.789+08';
  180. </sql-statement>
  181. <sql-statement>
  182. SELECT time with time zone '040506.789-08';
  183. </sql-statement>
  184. <sql-statement>
  185. SELECT time with time zone 'T040506.789+08';
  186. </sql-statement>
  187. <sql-statement>
  188. SELECT time with time zone 'T040506.789-08';
  189. </sql-statement>
  190. <sql-statement>
  191. SELECT time with time zone 'T040506.789 +08';
  192. </sql-statement>
  193. <sql-statement>
  194. SELECT time with time zone 'T040506.789 -08';
  195. </sql-statement>
  196. <sql-statement>
  197. SET DateStyle = 'Postgres, MDY';
  198. </sql-statement>
  199. <sql-statement>
  200. -- Check Julian dates BC
  201. SELECT date 'J1520447' AS "Confucius' Birthday";
  202. </sql-statement>
  203. <sql-statement>
  204. SELECT date 'J0' AS "Julian Epoch";
  205. </sql-statement>
  206. <sql-statement>
  207. --
  208. -- date, time arithmetic
  209. --
  210. SELECT date '1981-02-03' + time '04:05:06' AS "Date + Time";
  211. </sql-statement>
  212. <sql-statement>
  213. SELECT date '1991-02-03' + time with time zone '04:05:06 PST' AS "Date + Time PST";
  214. </sql-statement>
  215. -stdin-:<main>: Fatal: Execution
  216. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  217. SELECT date '1991-02-03' + time with time zone '04:05:06 PST' AS "Date + Time PST";
  218. ^
  219. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type time with time zone: "04:05:06 PST"
  220. SELECT date '1991-02-03' + time with time zone '04:05:06 PST' AS "Date + Time PST";
  221. ^
  222. <sql-statement>
  223. SELECT date '2001-02-03' + time with time zone '04:05:06 UTC' AS "Date + Time UTC";
  224. </sql-statement>
  225. -stdin-:<main>: Fatal: Execution
  226. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  227. SELECT date '2001-02-03' + time with time zone '04:05:06 UTC' AS "Date + Time UTC";
  228. ^
  229. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type time with time zone: "04:05:06 UTC"
  230. SELECT date '2001-02-03' + time with time zone '04:05:06 UTC' AS "Date + Time UTC";
  231. ^
  232. <sql-statement>
  233. SELECT date '1991-02-03' + interval '2 years' AS "Add Two Years";
  234. </sql-statement>
  235. <sql-statement>
  236. SELECT date '2001-12-13' - interval '2 years' AS "Subtract Two Years";
  237. </sql-statement>
  238. <sql-statement>
  239. -- subtract time from date should not make sense; use interval instead
  240. SELECT date '1991-02-03' - time '04:05:06' AS "Subtract Time";
  241. </sql-statement>
  242. <sql-statement>
  243. SELECT date '1991-02-03' - time with time zone '04:05:06 UTC' AS "Subtract Time UTC";
  244. </sql-statement>
  245. -stdin-:<main>: Error: Type annotation
  246. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  247. SELECT date '1991-02-03' - time with time zone '04:05:06 UTC' AS "Subtract Time UTC";
  248. ^
  249. -stdin-:<main>:1:26: Error: At function: PgOp
  250. SELECT date '1991-02-03' - time with time zone '04:05:06 UTC' AS "Subtract Time UTC";
  251. ^
  252. -stdin-:<main>:1:26: Error: Unable to find an overload for operator - with given argument type(s): (date,timetz)
  253. SELECT date '1991-02-03' - time with time zone '04:05:06 UTC' AS "Subtract Time UTC";
  254. ^
  255. <sql-statement>
  256. --
  257. -- timestamp, interval arithmetic
  258. --
  259. SELECT timestamp without time zone '1996-03-01' - interval '1 second' AS "Feb 29";
  260. </sql-statement>
  261. <sql-statement>
  262. SELECT timestamp without time zone '1999-03-01' - interval '1 second' AS "Feb 28";
  263. </sql-statement>
  264. <sql-statement>
  265. SELECT timestamp without time zone '2000-03-01' - interval '1 second' AS "Feb 29";
  266. </sql-statement>
  267. <sql-statement>
  268. SELECT timestamp without time zone '1999-12-01' + interval '1 month - 1 second' AS "Dec 31";
  269. </sql-statement>
  270. <sql-statement>
  271. SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '106000000 days' AS "Feb 23, 285506";
  272. </sql-statement>
  273. <sql-statement>
  274. SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '107000000 days' AS "Jan 20, 288244";
  275. </sql-statement>
  276. <sql-statement>
  277. SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '109203489 days' AS "Dec 31, 294276";
  278. </sql-statement>
  279. <sql-statement>
  280. SELECT timestamp without time zone '12/31/294276' - timestamp without time zone '12/23/1999' AS "106751991 Days";
  281. </sql-statement>
  282. <sql-statement>
  283. -- Shorthand values
  284. -- Not directly usable for regression testing since these are not constants.
  285. -- So, just try to test parser and hope for the best - thomas 97/04/26
  286. SELECT (timestamp without time zone 'today' = (timestamp without time zone 'yesterday' + interval '1 day')) as "True";
  287. </sql-statement>
  288. <sql-statement>
  289. SELECT (timestamp without time zone 'today' = (timestamp without time zone 'tomorrow' - interval '1 day')) as "True";
  290. </sql-statement>
  291. <sql-statement>
  292. SELECT (timestamp without time zone 'today 10:30' = (timestamp without time zone 'yesterday' + interval '1 day 10 hr 30 min')) as "True";
  293. </sql-statement>
  294. <sql-statement>
  295. SELECT (timestamp without time zone '10:30 today' = (timestamp without time zone 'yesterday' + interval '1 day 10 hr 30 min')) as "True";
  296. </sql-statement>
  297. <sql-statement>
  298. SELECT (timestamp without time zone 'tomorrow' = (timestamp without time zone 'yesterday' + interval '2 days')) as "True";
  299. </sql-statement>
  300. <sql-statement>
  301. SELECT (timestamp without time zone 'tomorrow 16:00:00' = (timestamp without time zone 'today' + interval '1 day 16 hours')) as "True";
  302. </sql-statement>
  303. <sql-statement>
  304. SELECT (timestamp without time zone '16:00:00 tomorrow' = (timestamp without time zone 'today' + interval '1 day 16 hours')) as "True";
  305. </sql-statement>
  306. <sql-statement>
  307. SELECT (timestamp without time zone 'yesterday 12:34:56' = (timestamp without time zone 'tomorrow' - interval '2 days - 12:34:56')) as "True";
  308. </sql-statement>
  309. <sql-statement>
  310. SELECT (timestamp without time zone '12:34:56 yesterday' = (timestamp without time zone 'tomorrow' - interval '2 days - 12:34:56')) as "True";
  311. </sql-statement>
  312. <sql-statement>
  313. SELECT (timestamp without time zone 'tomorrow' > 'now') as "True";
  314. </sql-statement>
  315. <sql-statement>
  316. -- Convert from date and time to timestamp
  317. -- This test used to be timestamp(date,time) but no longer allowed by grammar
  318. -- to enable support for SQL99 timestamp type syntax.
  319. SELECT date '1994-01-01' + time '11:00' AS "Jan_01_1994_11am";
  320. </sql-statement>
  321. <sql-statement>
  322. SELECT date '1994-01-01' + time '10:00' AS "Jan_01_1994_10am";
  323. </sql-statement>
  324. <sql-statement>
  325. SELECT date '1994-01-01' + timetz '11:00-5' AS "Jan_01_1994_8am";
  326. </sql-statement>
  327. <sql-statement>
  328. SELECT timestamptz(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_8am";
  329. </sql-statement>
  330. <sql-statement>
  331. SELECT d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL;
  332. </sql-statement>
  333. <sql-statement>
  334. SELECT d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL;
  335. </sql-statement>
  336. <sql-statement>
  337. SELECT timestamp with time zone '1996-03-01' - interval '1 second' AS "Feb 29";
  338. </sql-statement>
  339. <sql-statement>
  340. SELECT timestamp with time zone '1999-03-01' - interval '1 second' AS "Feb 28";
  341. </sql-statement>
  342. <sql-statement>
  343. SELECT timestamp with time zone '2000-03-01' - interval '1 second' AS "Feb 29";
  344. </sql-statement>
  345. <sql-statement>
  346. SELECT timestamp with time zone '1999-12-01' + interval '1 month - 1 second' AS "Dec 31";
  347. </sql-statement>
  348. <sql-statement>
  349. SELECT (timestamp with time zone 'today' = (timestamp with time zone 'yesterday' + interval '1 day')) as "True";
  350. </sql-statement>
  351. <sql-statement>
  352. SELECT (timestamp with time zone 'today' = (timestamp with time zone 'tomorrow' - interval '1 day')) as "True";
  353. </sql-statement>
  354. <sql-statement>
  355. SELECT (timestamp with time zone 'tomorrow' = (timestamp with time zone 'yesterday' + interval '2 days')) as "True";
  356. </sql-statement>
  357. <sql-statement>
  358. SELECT (timestamp with time zone 'tomorrow' > 'now') as "True";
  359. </sql-statement>
  360. <sql-statement>
  361. -- timestamp with time zone, interval arithmetic around DST change
  362. -- (just for fun, let's use an intentionally nonstandard POSIX zone spec)
  363. SET TIME ZONE 'CST7CDT,M4.1.0,M10.5.0';
  364. </sql-statement>
  365. <sql-statement>
  366. SELECT timestamp with time zone '2005-04-02 12:00-07' + interval '1 day' as "Apr 3, 12:00";
  367. </sql-statement>
  368. <sql-statement>
  369. SELECT timestamp with time zone '2005-04-02 12:00-07' + interval '24 hours' as "Apr 3, 13:00";
  370. </sql-statement>
  371. <sql-statement>
  372. SELECT timestamp with time zone '2005-04-03 12:00-06' - interval '1 day' as "Apr 2, 12:00";
  373. </sql-statement>
  374. <sql-statement>
  375. SELECT timestamp with time zone '2005-04-03 12:00-06' - interval '24 hours' as "Apr 2, 11:00";
  376. </sql-statement>
  377. <sql-statement>
  378. RESET TIME ZONE;
  379. </sql-statement>
  380. <sql-statement>
  381. SELECT timestamptz(date '1994-01-01', time '11:00') AS "Jan_01_1994_10am";
  382. </sql-statement>
  383. <sql-statement>
  384. SELECT timestamptz(date '1994-01-01', time '10:00') AS "Jan_01_1994_9am";
  385. </sql-statement>
  386. <sql-statement>
  387. SELECT timestamptz(date '1994-01-01', time with time zone '11:00-8') AS "Jan_01_1994_11am";
  388. </sql-statement>
  389. <sql-statement>
  390. SELECT timestamptz(date '1994-01-01', time with time zone '10:00-8') AS "Jan_01_1994_10am";
  391. </sql-statement>
  392. <sql-statement>
  393. SELECT timestamptz(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_8am";
  394. </sql-statement>
  395. <sql-statement>
  396. SELECT d1 + interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
  397. </sql-statement>
  398. <sql-statement>
  399. SELECT d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
  400. </sql-statement>
  401. <sql-statement>
  402. --
  403. -- time, interval arithmetic
  404. --
  405. SELECT CAST(time '01:02' AS interval) AS "+01:02";
  406. </sql-statement>
  407. <sql-statement>
  408. SELECT CAST(interval '02:03' AS time) AS "02:03:00";
  409. </sql-statement>
  410. <sql-statement>
  411. SELECT time '01:30' + interval '02:01' AS "03:31:00";
  412. </sql-statement>
  413. <sql-statement>
  414. SELECT time '01:30' - interval '02:01' AS "23:29:00";
  415. </sql-statement>
  416. <sql-statement>
  417. SELECT time '02:30' + interval '36:01' AS "14:31:00";
  418. </sql-statement>
  419. <sql-statement>
  420. SELECT time '03:30' + interval '1 month 04:01' AS "07:31:00";
  421. </sql-statement>
  422. <sql-statement>
  423. SELECT CAST(time with time zone '01:02-08' AS interval) AS "+00:01";
  424. </sql-statement>
  425. -stdin-:<main>: Error: Type annotation
  426. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  427. SELECT CAST(time with time zone '01:02-08' AS interval) AS "+00:01";
  428. ^
  429. -stdin-:<main>:1:47: Error: At function: PgCast
  430. SELECT CAST(time with time zone '01:02-08' AS interval) AS "+00:01";
  431. ^
  432. -stdin-:<main>:1:47: Error: Cannot cast type timetz into type interval
  433. SELECT CAST(time with time zone '01:02-08' AS interval) AS "+00:01";
  434. ^
  435. <sql-statement>
  436. SELECT CAST(interval '02:03' AS time with time zone) AS "02:03:00-08";
  437. </sql-statement>
  438. -stdin-:<main>: Error: Type annotation
  439. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  440. SELECT CAST(interval '02:03' AS time with time zone) AS "02:03:00-08";
  441. ^
  442. -stdin-:<main>:1:33: Error: At function: PgCast
  443. SELECT CAST(interval '02:03' AS time with time zone) AS "02:03:00-08";
  444. ^
  445. -stdin-:<main>:1:33: Error: Cannot cast type interval into type timetz
  446. SELECT CAST(interval '02:03' AS time with time zone) AS "02:03:00-08";
  447. ^
  448. <sql-statement>
  449. SELECT time with time zone '01:30-08' - interval '02:01' AS "23:29:00-08";
  450. </sql-statement>
  451. <sql-statement>
  452. SELECT time with time zone '02:30-08' + interval '36:01' AS "14:31:00-08";
  453. </sql-statement>
  454. <sql-statement>
  455. -- These two tests cannot be used because they default to current timezone,
  456. -- which may be either -08 or -07 depending on the time of year.
  457. -- SELECT time with time zone '01:30' + interval '02:01' AS "03:31:00-08";
  458. -- SELECT time with time zone '03:30' + interval '1 month 04:01' AS "07:31:00-08";
  459. -- Try the following two tests instead, as a poor substitute
  460. SELECT CAST(CAST(date 'today' + time with time zone '05:30'
  461. + interval '02:01' AS time with time zone) AS time) AS "07:31:00";
  462. </sql-statement>
  463. <sql-statement>
  464. SELECT CAST(cast(date 'today' + time with time zone '03:30'
  465. + interval '1 month 04:01' as timestamp without time zone) AS time) AS "07:31:00";
  466. </sql-statement>
  467. <sql-statement>
  468. SELECT t.d1 AS t, i.f1 AS i, t.d1 + i.f1 AS "add", t.d1 - i.f1 AS "subtract"
  469. FROM TIMESTAMP_TBL t, INTERVAL_TBL i
  470. WHERE t.d1 BETWEEN '1990-01-01' AND '2001-01-01'
  471. AND i.f1 BETWEEN '00:00' AND '23:00'
  472. ORDER BY 1,2;
  473. </sql-statement>
  474. <sql-statement>
  475. SELECT t.f1 AS t, i.f1 AS i, t.f1 + i.f1 AS "add", t.f1 - i.f1 AS "subtract"
  476. FROM TIME_TBL t, INTERVAL_TBL i
  477. ORDER BY 1,2;
  478. </sql-statement>
  479. <sql-statement>
  480. SELECT t.f1 AS t, i.f1 AS i, t.f1 + i.f1 AS "add", t.f1 - i.f1 AS "subtract"
  481. FROM TIMETZ_TBL t, INTERVAL_TBL i
  482. ORDER BY 1,2;
  483. </sql-statement>
  484. <sql-statement>
  485. -- SQL9x OVERLAPS operator
  486. -- test with time zone
  487. SELECT (timestamp with time zone '2000-11-27', timestamp with time zone '2000-11-28')
  488. OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "True";
  489. </sql-statement>
  490. <sql-statement>
  491. SELECT (timestamp with time zone '2000-11-26', timestamp with time zone '2000-11-27')
  492. OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "False";
  493. </sql-statement>
  494. <sql-statement>
  495. SELECT (timestamp with time zone '2000-11-27', timestamp with time zone '2000-11-28')
  496. OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '1 day') AS "True";
  497. </sql-statement>
  498. -stdin-:<main>: Error: Type annotation
  499. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  500. SELECT (timestamp with time zone '2000-11-27', timestamp with time zone '2000-11-28')
  501. ^
  502. -stdin-:<main>:2:3: Error: At function: PgCall
  503. OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '1 day') AS "True";
  504. ^
  505. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (timestamptz,timestamptz,timestamptz,interval)
  506. OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '1 day') AS "True";
  507. ^
  508. <sql-statement>
  509. SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
  510. OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "False";
  511. </sql-statement>
  512. -stdin-:<main>: Error: Type annotation
  513. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  514. SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
  515. ^
  516. -stdin-:<main>:2:3: Error: At function: PgCall
  517. OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "False";
  518. ^
  519. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (timestamptz,interval,timestamptz,timestamptz)
  520. OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "False";
  521. ^
  522. <sql-statement>
  523. SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
  524. OVERLAPS (timestamp with time zone '2000-11-27', interval '12 hours') AS "True";
  525. </sql-statement>
  526. -stdin-:<main>: Error: Type annotation
  527. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  528. SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
  529. ^
  530. -stdin-:<main>:2:3: Error: At function: PgCall
  531. OVERLAPS (timestamp with time zone '2000-11-27', interval '12 hours') AS "True";
  532. ^
  533. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (timestamptz,interval,timestamptz,interval)
  534. OVERLAPS (timestamp with time zone '2000-11-27', interval '12 hours') AS "True";
  535. ^
  536. <sql-statement>
  537. SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
  538. OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '12 hours') AS "False";
  539. </sql-statement>
  540. -stdin-:<main>: Error: Type annotation
  541. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  542. SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
  543. ^
  544. -stdin-:<main>:2:3: Error: At function: PgCall
  545. OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '12 hours') AS "False";
  546. ^
  547. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (timestamptz,interval,timestamptz,interval)
  548. OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '12 hours') AS "False";
  549. ^
  550. <sql-statement>
  551. -- test without time zone
  552. SELECT (timestamp without time zone '2000-11-27', timestamp without time zone '2000-11-28')
  553. OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "True";
  554. </sql-statement>
  555. <sql-statement>
  556. SELECT (timestamp without time zone '2000-11-26', timestamp without time zone '2000-11-27')
  557. OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "False";
  558. </sql-statement>
  559. <sql-statement>
  560. SELECT (timestamp without time zone '2000-11-27', timestamp without time zone '2000-11-28')
  561. OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '1 day') AS "True";
  562. </sql-statement>
  563. -stdin-:<main>: Error: Type annotation
  564. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  565. SELECT (timestamp without time zone '2000-11-27', timestamp without time zone '2000-11-28')
  566. ^
  567. -stdin-:<main>:2:3: Error: At function: PgCall
  568. OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '1 day') AS "True";
  569. ^
  570. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (timestamp,timestamp,timestamp,interval)
  571. OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '1 day') AS "True";
  572. ^
  573. <sql-statement>
  574. SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
  575. OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "False";
  576. </sql-statement>
  577. -stdin-:<main>: Error: Type annotation
  578. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  579. SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
  580. ^
  581. -stdin-:<main>:2:3: Error: At function: PgCall
  582. OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "False";
  583. ^
  584. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (timestamp,interval,timestamp,timestamp)
  585. OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "False";
  586. ^
  587. <sql-statement>
  588. SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
  589. OVERLAPS (timestamp without time zone '2000-11-27', interval '12 hours') AS "True";
  590. </sql-statement>
  591. -stdin-:<main>: Error: Type annotation
  592. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  593. SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
  594. ^
  595. -stdin-:<main>:2:3: Error: At function: PgCall
  596. OVERLAPS (timestamp without time zone '2000-11-27', interval '12 hours') AS "True";
  597. ^
  598. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (timestamp,interval,timestamp,interval)
  599. OVERLAPS (timestamp without time zone '2000-11-27', interval '12 hours') AS "True";
  600. ^
  601. <sql-statement>
  602. SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
  603. OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '12 hours') AS "False";
  604. </sql-statement>
  605. -stdin-:<main>: Error: Type annotation
  606. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  607. SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
  608. ^
  609. -stdin-:<main>:2:3: Error: At function: PgCall
  610. OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '12 hours') AS "False";
  611. ^
  612. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (timestamp,interval,timestamp,interval)
  613. OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '12 hours') AS "False";
  614. ^
  615. <sql-statement>
  616. -- test time and interval
  617. SELECT (time '00:00', time '01:00')
  618. OVERLAPS (time '00:30', time '01:30') AS "True";
  619. </sql-statement>
  620. <sql-statement>
  621. SELECT (time '00:00', interval '1 hour')
  622. OVERLAPS (time '00:30', interval '1 hour') AS "True";
  623. </sql-statement>
  624. -stdin-:<main>: Error: Type annotation
  625. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  626. SELECT (time '00:00', interval '1 hour')
  627. ^
  628. -stdin-:<main>:2:3: Error: At function: PgCall
  629. OVERLAPS (time '00:30', interval '1 hour') AS "True";
  630. ^
  631. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (time,interval,time,interval)
  632. OVERLAPS (time '00:30', interval '1 hour') AS "True";
  633. ^
  634. <sql-statement>
  635. SELECT (time '00:00', interval '1 hour')
  636. OVERLAPS (time '01:30', interval '1 hour') AS "False";
  637. </sql-statement>
  638. -stdin-:<main>: Error: Type annotation
  639. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  640. SELECT (time '00:00', interval '1 hour')
  641. ^
  642. -stdin-:<main>:2:3: Error: At function: PgCall
  643. OVERLAPS (time '01:30', interval '1 hour') AS "False";
  644. ^
  645. -stdin-:<main>:2:3: Error: Unable to find an overload for proc overlaps with given argument types: (time,interval,time,interval)
  646. OVERLAPS (time '01:30', interval '1 hour') AS "False";
  647. ^
  648. <sql-statement>
  649. -- SQL99 seems to want this to be false (and we conform to the spec).
  650. -- istm that this *should* return true, on the theory that time
  651. -- intervals can wrap around the day boundary - thomas 2001-09-25
  652. SELECT (time '00:00', interval '1 hour')
  653. OVERLAPS (time '01:30', interval '1 day') AS "False";
  654. </sql-statement>
  655. -stdin-:<main>: Error: Type annotation
  656. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  657. -- SQL99 seems to want this to be false (and we conform to the spec).
  658. ^
  659. -stdin-:<main>:5:3: Error: At function: PgCall
  660. OVERLAPS (time '01:30', interval '1 day') AS "False";
  661. ^
  662. -stdin-:<main>:5:3: Error: Unable to find an overload for proc overlaps with given argument types: (time,interval,time,interval)
  663. OVERLAPS (time '01:30', interval '1 day') AS "False";
  664. ^
  665. <sql-statement>
  666. CREATE TABLE TEMP_TIMESTAMP (f1 timestamp with time zone);
  667. </sql-statement>
  668. <sql-statement>
  669. -- get some candidate input values
  670. INSERT INTO TEMP_TIMESTAMP (f1)
  671. SELECT d1 FROM TIMESTAMP_TBL
  672. WHERE d1 BETWEEN '13-jun-1957' AND '1-jan-1997'
  673. OR d1 BETWEEN '1-jan-1999' AND '1-jan-2010';
  674. </sql-statement>
  675. <sql-statement>
  676. SELECT f1 AS "timestamp"
  677. FROM TEMP_TIMESTAMP
  678. ORDER BY "timestamp";
  679. </sql-statement>
  680. <sql-statement>
  681. SELECT d.f1 AS "timestamp", t.f1 AS "interval", d.f1 + t.f1 AS plus
  682. FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
  683. ORDER BY plus, "timestamp", "interval";
  684. </sql-statement>
  685. <sql-statement>
  686. SELECT d.f1 AS "timestamp", t.f1 AS "interval", d.f1 - t.f1 AS minus
  687. FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
  688. WHERE isfinite(d.f1)
  689. ORDER BY minus, "timestamp", "interval";
  690. </sql-statement>
  691. <sql-statement>
  692. SELECT d.f1 AS "timestamp",
  693. timestamp with time zone '1980-01-06 00:00 GMT' AS gpstime_zero,
  694. d.f1 - timestamp with time zone '1980-01-06 00:00 GMT' AS difference
  695. FROM TEMP_TIMESTAMP d
  696. ORDER BY difference;
  697. </sql-statement>
  698. <sql-statement>
  699. SELECT d1.f1 AS timestamp1, d2.f1 AS timestamp2, d1.f1 - d2.f1 AS difference
  700. FROM TEMP_TIMESTAMP d1, TEMP_TIMESTAMP d2
  701. ORDER BY timestamp1, timestamp2, difference;
  702. </sql-statement>
  703. <sql-statement>
  704. --
  705. -- Conversions
  706. --
  707. SELECT f1 AS "timestamp", date(f1) AS date
  708. FROM TEMP_TIMESTAMP
  709. WHERE f1 <> timestamp 'now'
  710. ORDER BY date, "timestamp";
  711. </sql-statement>
  712. <sql-statement>
  713. DROP TABLE TEMP_TIMESTAMP;
  714. </sql-statement>
  715. <sql-statement>
  716. --
  717. -- Comparisons between datetime types, especially overflow cases
  718. ---
  719. SELECT '2202020-10-05'::date::timestamp; -- fail
  720. </sql-statement>
  721. -stdin-:<main>: Fatal: Execution
  722. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  723. --
  724. ^
  725. -stdin-:<main>:1:1: Fatal: ERROR: date out of range for timestamp
  726. --
  727. ^
  728. <sql-statement>
  729. SELECT '2202020-10-05'::date > '2020-10-05'::timestamp as t;
  730. </sql-statement>
  731. <sql-statement>
  732. SELECT '2020-10-05'::timestamp > '2202020-10-05'::date as f;
  733. </sql-statement>
  734. <sql-statement>
  735. SELECT '2202020-10-05'::date::timestamptz; -- fail
  736. </sql-statement>
  737. -stdin-:<main>: Fatal: Execution
  738. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  739. SELECT '2202020-10-05'::date::timestamptz; -- fail
  740. ^
  741. -stdin-:<main>:1:1: Fatal: ERROR: date out of range for timestamp
  742. SELECT '2202020-10-05'::date::timestamptz; -- fail
  743. ^
  744. <sql-statement>
  745. SELECT '2202020-10-05'::date > '2020-10-05'::timestamptz as t;
  746. </sql-statement>
  747. <sql-statement>
  748. SELECT '2020-10-05'::timestamptz > '2202020-10-05'::date as f;
  749. </sql-statement>
  750. <sql-statement>
  751. -- This conversion may work depending on timezone
  752. SELECT '4714-11-24 BC'::date::timestamptz;
  753. </sql-statement>
  754. <sql-statement>
  755. SET TimeZone = 'UTC-2';
  756. </sql-statement>
  757. <sql-statement>
  758. SELECT '4714-11-24 BC'::date::timestamptz; -- fail
  759. </sql-statement>
  760. <sql-statement>
  761. SELECT '4714-11-24 BC'::date < '2020-10-05'::timestamptz as t;
  762. </sql-statement>
  763. <sql-statement>
  764. SELECT '2020-10-05'::timestamptz >= '4714-11-24 BC'::date as t;
  765. </sql-statement>
  766. <sql-statement>
  767. SELECT '4714-11-24 BC'::timestamp < '2020-10-05'::timestamptz as t;
  768. </sql-statement>
  769. <sql-statement>
  770. SELECT '2020-10-05'::timestamptz >= '4714-11-24 BC'::timestamp as t;
  771. </sql-statement>
  772. <sql-statement>
  773. RESET TimeZone;
  774. </sql-statement>
  775. <sql-statement>
  776. --
  777. -- Formats
  778. --
  779. SET DateStyle TO 'US,Postgres';
  780. </sql-statement>
  781. <sql-statement>
  782. SHOW DateStyle;
  783. </sql-statement>
  784. -stdin-:<main>: Error: Parse Sql
  785. -stdin-:<main>:1:1: Error: unrecognized configuration parameter "datestyle"
  786. SHOW DateStyle;
  787. ^
  788. <sql-statement>
  789. SELECT d1 AS us_postgres FROM TIMESTAMP_TBL;
  790. </sql-statement>
  791. <sql-statement>
  792. SET DateStyle TO 'US,ISO';
  793. </sql-statement>
  794. <sql-statement>
  795. SELECT d1 AS us_iso FROM TIMESTAMP_TBL;
  796. </sql-statement>
  797. <sql-statement>
  798. SET DateStyle TO 'US,SQL';
  799. </sql-statement>
  800. <sql-statement>
  801. SHOW DateStyle;
  802. </sql-statement>
  803. -stdin-:<main>: Error: Parse Sql
  804. -stdin-:<main>:1:1: Error: unrecognized configuration parameter "datestyle"
  805. SHOW DateStyle;
  806. ^
  807. <sql-statement>
  808. SELECT d1 AS us_sql FROM TIMESTAMP_TBL;
  809. </sql-statement>
  810. <sql-statement>
  811. SET DateStyle TO 'European,Postgres';
  812. </sql-statement>
  813. <sql-statement>
  814. SHOW DateStyle;
  815. </sql-statement>
  816. -stdin-:<main>: Error: Parse Sql
  817. -stdin-:<main>:1:1: Error: unrecognized configuration parameter "datestyle"
  818. SHOW DateStyle;
  819. ^
  820. <sql-statement>
  821. INSERT INTO TIMESTAMP_TBL VALUES('13/06/1957');
  822. </sql-statement>
  823. -stdin-:<main>: Fatal: Execution
  824. -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
  825. INSERT INTO TIMESTAMP_TBL VALUES('13/06/1957');
  826. ^
  827. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "13/06/1957"
  828. HINT: Perhaps you need a different "datestyle" setting.
  829. INSERT INTO TIMESTAMP_TBL VALUES('13/06/1957');
  830. ^
  831. <sql-statement>
  832. SELECT count(*) as one FROM TIMESTAMP_TBL WHERE d1 = 'Jun 13 1957';
  833. </sql-statement>
  834. <sql-statement>
  835. SELECT d1 AS european_postgres FROM TIMESTAMP_TBL;
  836. </sql-statement>
  837. <sql-statement>
  838. SET DateStyle TO 'European,ISO';
  839. </sql-statement>
  840. <sql-statement>
  841. SHOW DateStyle;
  842. </sql-statement>
  843. -stdin-:<main>: Error: Parse Sql
  844. -stdin-:<main>:1:1: Error: unrecognized configuration parameter "datestyle"
  845. SHOW DateStyle;
  846. ^
  847. <sql-statement>
  848. SELECT d1 AS european_iso FROM TIMESTAMP_TBL;
  849. </sql-statement>
  850. <sql-statement>
  851. SET DateStyle TO 'European,SQL';
  852. </sql-statement>
  853. <sql-statement>
  854. SHOW DateStyle;
  855. </sql-statement>
  856. -stdin-:<main>: Error: Parse Sql
  857. -stdin-:<main>:1:1: Error: unrecognized configuration parameter "datestyle"
  858. SHOW DateStyle;
  859. ^
  860. <sql-statement>
  861. SELECT d1 AS european_sql FROM TIMESTAMP_TBL;
  862. </sql-statement>
  863. <sql-statement>
  864. RESET DateStyle;
  865. </sql-statement>
  866. <sql-statement>
  867. --
  868. -- to_timestamp()
  869. --
  870. SELECT to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS');
  871. </sql-statement>
  872. <sql-statement>
  873. SELECT to_timestamp('97/2/16 8:14:30', 'FMYYYY/FMMM/FMDD FMHH:FMMI:FMSS');
  874. </sql-statement>
  875. <sql-statement>
  876. SELECT to_timestamp('2011$03!18 23_38_15', 'YYYY-MM-DD HH24:MI:SS');
  877. </sql-statement>
  878. <sql-statement>
  879. SELECT to_timestamp('1985 January 12', 'YYYY FMMonth DD');
  880. </sql-statement>
  881. <sql-statement>
  882. SELECT to_timestamp('1985 FMMonth 12', 'YYYY "FMMonth" DD');
  883. </sql-statement>
  884. <sql-statement>
  885. SELECT to_timestamp('1985 \ 12', 'YYYY \\ DD');
  886. </sql-statement>
  887. <sql-statement>
  888. SELECT to_timestamp('My birthday-> Year: 1976, Month: May, Day: 16',
  889. '"My birthday-> Year:" YYYY, "Month:" FMMonth, "Day:" DD');
  890. </sql-statement>
  891. <sql-statement>
  892. SELECT to_timestamp('1,582nd VIII 21', 'Y,YYYth FMRM DD');
  893. </sql-statement>
  894. <sql-statement>
  895. SELECT to_timestamp('15 "text between quote marks" 98 54 45',
  896. E'HH24 "\\"text between quote marks\\"" YY MI SS');
  897. </sql-statement>
  898. <sql-statement>
  899. SELECT to_timestamp('05121445482000', 'MMDDHH24MISSYYYY');
  900. </sql-statement>
  901. <sql-statement>
  902. SELECT to_timestamp('2000January09Sunday', 'YYYYFMMonthDDFMDay');
  903. </sql-statement>
  904. <sql-statement>
  905. SELECT to_timestamp('97/Feb/16', 'YYMonDD');
  906. </sql-statement>
  907. -stdin-:<main>: Fatal: Execution
  908. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  909. SELECT to_timestamp('97/Feb/16', 'YYMonDD');
  910. ^
  911. -stdin-:<main>:1:1: Fatal: ERROR: invalid value "/Feb/16" for "Mon"
  912. DETAIL: The given value did not match any of the allowed values for this field.
  913. SELECT to_timestamp('97/Feb/16', 'YYMonDD');
  914. ^
  915. <sql-statement>
  916. SELECT to_timestamp('97/Feb/16', 'YY:Mon:DD');
  917. </sql-statement>
  918. <sql-statement>
  919. SELECT to_timestamp('97/Feb/16', 'FXYY:Mon:DD');
  920. </sql-statement>
  921. <sql-statement>
  922. SELECT to_timestamp('97/Feb/16', 'FXYY/Mon/DD');
  923. </sql-statement>
  924. <sql-statement>
  925. SELECT to_timestamp('19971116', 'YYYYMMDD');
  926. </sql-statement>
  927. <sql-statement>
  928. SELECT to_timestamp('20000-1116', 'YYYY-MMDD');
  929. </sql-statement>
  930. <sql-statement>
  931. SELECT to_timestamp('1997 AD 11 16', 'YYYY BC MM DD');
  932. </sql-statement>
  933. <sql-statement>
  934. SELECT to_timestamp('1997 BC 11 16', 'YYYY BC MM DD');
  935. </sql-statement>
  936. <sql-statement>
  937. SELECT to_timestamp('1997 A.D. 11 16', 'YYYY B.C. MM DD');
  938. </sql-statement>
  939. <sql-statement>
  940. SELECT to_timestamp('1997 B.C. 11 16', 'YYYY B.C. MM DD');
  941. </sql-statement>
  942. <sql-statement>
  943. SELECT to_timestamp('9-1116', 'Y-MMDD');
  944. </sql-statement>
  945. <sql-statement>
  946. SELECT to_timestamp('95-1116', 'YY-MMDD');
  947. </sql-statement>
  948. <sql-statement>
  949. SELECT to_timestamp('995-1116', 'YYY-MMDD');
  950. </sql-statement>
  951. <sql-statement>
  952. SELECT to_timestamp('2005426', 'YYYYWWD');
  953. </sql-statement>
  954. <sql-statement>
  955. SELECT to_timestamp('2005300', 'YYYYDDD');
  956. </sql-statement>
  957. <sql-statement>
  958. SELECT to_timestamp('2005527', 'IYYYIWID');
  959. </sql-statement>
  960. <sql-statement>
  961. SELECT to_timestamp('005527', 'IYYIWID');
  962. </sql-statement>
  963. <sql-statement>
  964. SELECT to_timestamp('05527', 'IYIWID');
  965. </sql-statement>
  966. <sql-statement>
  967. SELECT to_timestamp('5527', 'IIWID');
  968. </sql-statement>
  969. <sql-statement>
  970. SELECT to_timestamp('2005364', 'IYYYIDDD');
  971. </sql-statement>
  972. <sql-statement>
  973. SELECT to_timestamp('20050302', 'YYYYMMDD');
  974. </sql-statement>
  975. <sql-statement>
  976. SELECT to_timestamp('2005 03 02', 'YYYYMMDD');
  977. </sql-statement>
  978. <sql-statement>
  979. SELECT to_timestamp(' 2005 03 02', 'YYYYMMDD');
  980. </sql-statement>
  981. <sql-statement>
  982. SELECT to_timestamp(' 20050302', 'YYYYMMDD');
  983. </sql-statement>
  984. <sql-statement>
  985. SELECT to_timestamp('2011-12-18 11:38 AM', 'YYYY-MM-DD HH12:MI PM');
  986. </sql-statement>
  987. <sql-statement>
  988. SELECT to_timestamp('2011-12-18 11:38 PM', 'YYYY-MM-DD HH12:MI PM');
  989. </sql-statement>
  990. <sql-statement>
  991. SELECT to_timestamp('2011-12-18 11:38 A.M.', 'YYYY-MM-DD HH12:MI P.M.');
  992. </sql-statement>
  993. <sql-statement>
  994. SELECT to_timestamp('2011-12-18 11:38 P.M.', 'YYYY-MM-DD HH12:MI P.M.');
  995. </sql-statement>
  996. <sql-statement>
  997. SELECT to_timestamp('2011-12-18 11:38 +05', 'YYYY-MM-DD HH12:MI TZH');
  998. </sql-statement>
  999. <sql-statement>
  1000. SELECT to_timestamp('2011-12-18 11:38 -05', 'YYYY-MM-DD HH12:MI TZH');
  1001. </sql-statement>
  1002. <sql-statement>
  1003. SELECT to_timestamp('2011-12-18 11:38 +05:20', 'YYYY-MM-DD HH12:MI TZH:TZM');
  1004. </sql-statement>
  1005. <sql-statement>
  1006. SELECT to_timestamp('2011-12-18 11:38 -05:20', 'YYYY-MM-DD HH12:MI TZH:TZM');
  1007. </sql-statement>
  1008. <sql-statement>
  1009. SELECT to_timestamp('2011-12-18 11:38 20', 'YYYY-MM-DD HH12:MI TZM');
  1010. </sql-statement>
  1011. <sql-statement>
  1012. SELECT to_timestamp('2011-12-18 11:38 PST', 'YYYY-MM-DD HH12:MI TZ'); -- NYI
  1013. </sql-statement>
  1014. -stdin-:<main>: Fatal: Execution
  1015. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1016. SELECT to_timestamp('2011-12-18 11:38 PST', 'YYYY-MM-DD HH12:MI TZ'); -- NYI
  1017. ^
  1018. -stdin-:<main>:1:1: Fatal: ERROR: formatting field "TZ" is only supported in to_char
  1019. SELECT to_timestamp('2011-12-18 11:38 PST', 'YYYY-MM-DD HH12:MI TZ'); -- NYI
  1020. ^
  1021. <sql-statement>
  1022. SELECT to_timestamp('2018-11-02 12:34:56.025', 'YYYY-MM-DD HH24:MI:SS.MS');
  1023. </sql-statement>
  1024. <sql-statement>
  1025. SELECT i, to_timestamp('2018-11-02 12:34:56', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1026. </sql-statement>
  1027. -stdin-:<main>: Error: Type annotation
  1028. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1029. SELECT i, to_timestamp('2018-11-02 12:34:56', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1030. ^
  1031. -stdin-:<main>:1:11: Error: At function: PgCall
  1032. SELECT i, to_timestamp('2018-11-02 12:34:56', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1033. ^
  1034. -stdin-:<main>:1:74: Error: At function: PgOp
  1035. SELECT i, to_timestamp('2018-11-02 12:34:56', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1036. ^
  1037. -stdin-:<main>:1:74: Error: Unable to find an overload for operator || with given argument type(s): (unknown,int4)
  1038. SELECT i, to_timestamp('2018-11-02 12:34:56', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1039. ^
  1040. <sql-statement>
  1041. SELECT i, to_timestamp('2018-11-02 12:34:56.1', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1042. </sql-statement>
  1043. -stdin-:<main>: Error: Type annotation
  1044. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1045. SELECT i, to_timestamp('2018-11-02 12:34:56.1', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1046. ^
  1047. -stdin-:<main>:1:11: Error: At function: PgCall
  1048. SELECT i, to_timestamp('2018-11-02 12:34:56.1', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1049. ^
  1050. -stdin-:<main>:1:76: Error: At function: PgOp
  1051. SELECT i, to_timestamp('2018-11-02 12:34:56.1', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1052. ^
  1053. -stdin-:<main>:1:76: Error: Unable to find an overload for operator || with given argument type(s): (unknown,int4)
  1054. SELECT i, to_timestamp('2018-11-02 12:34:56.1', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1055. ^
  1056. <sql-statement>
  1057. SELECT i, to_timestamp('2018-11-02 12:34:56.12', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1058. </sql-statement>
  1059. -stdin-:<main>: Error: Type annotation
  1060. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1061. SELECT i, to_timestamp('2018-11-02 12:34:56.12', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1062. ^
  1063. -stdin-:<main>:1:11: Error: At function: PgCall
  1064. SELECT i, to_timestamp('2018-11-02 12:34:56.12', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1065. ^
  1066. -stdin-:<main>:1:77: Error: At function: PgOp
  1067. SELECT i, to_timestamp('2018-11-02 12:34:56.12', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1068. ^
  1069. -stdin-:<main>:1:77: Error: Unable to find an overload for operator || with given argument type(s): (unknown,int4)
  1070. SELECT i, to_timestamp('2018-11-02 12:34:56.12', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1071. ^
  1072. <sql-statement>
  1073. SELECT i, to_timestamp('2018-11-02 12:34:56.123', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1074. </sql-statement>
  1075. -stdin-:<main>: Error: Type annotation
  1076. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1077. SELECT i, to_timestamp('2018-11-02 12:34:56.123', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1078. ^
  1079. -stdin-:<main>:1:11: Error: At function: PgCall
  1080. SELECT i, to_timestamp('2018-11-02 12:34:56.123', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1081. ^
  1082. -stdin-:<main>:1:78: Error: At function: PgOp
  1083. SELECT i, to_timestamp('2018-11-02 12:34:56.123', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1084. ^
  1085. -stdin-:<main>:1:78: Error: Unable to find an overload for operator || with given argument type(s): (unknown,int4)
  1086. SELECT i, to_timestamp('2018-11-02 12:34:56.123', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1087. ^
  1088. <sql-statement>
  1089. SELECT i, to_timestamp('2018-11-02 12:34:56.1234', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1090. </sql-statement>
  1091. -stdin-:<main>: Error: Type annotation
  1092. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1093. SELECT i, to_timestamp('2018-11-02 12:34:56.1234', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1094. ^
  1095. -stdin-:<main>:1:11: Error: At function: PgCall
  1096. SELECT i, to_timestamp('2018-11-02 12:34:56.1234', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1097. ^
  1098. -stdin-:<main>:1:79: Error: At function: PgOp
  1099. SELECT i, to_timestamp('2018-11-02 12:34:56.1234', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1100. ^
  1101. -stdin-:<main>:1:79: Error: Unable to find an overload for operator || with given argument type(s): (unknown,int4)
  1102. SELECT i, to_timestamp('2018-11-02 12:34:56.1234', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1103. ^
  1104. <sql-statement>
  1105. SELECT i, to_timestamp('2018-11-02 12:34:56.12345', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1106. </sql-statement>
  1107. -stdin-:<main>: Error: Type annotation
  1108. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1109. SELECT i, to_timestamp('2018-11-02 12:34:56.12345', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1110. ^
  1111. -stdin-:<main>:1:11: Error: At function: PgCall
  1112. SELECT i, to_timestamp('2018-11-02 12:34:56.12345', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1113. ^
  1114. -stdin-:<main>:1:80: Error: At function: PgOp
  1115. SELECT i, to_timestamp('2018-11-02 12:34:56.12345', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1116. ^
  1117. -stdin-:<main>:1:80: Error: Unable to find an overload for operator || with given argument type(s): (unknown,int4)
  1118. SELECT i, to_timestamp('2018-11-02 12:34:56.12345', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1119. ^
  1120. <sql-statement>
  1121. SELECT i, to_timestamp('2018-11-02 12:34:56.123456', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1122. </sql-statement>
  1123. -stdin-:<main>: Error: Type annotation
  1124. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1125. SELECT i, to_timestamp('2018-11-02 12:34:56.123456', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1126. ^
  1127. -stdin-:<main>:1:11: Error: At function: PgCall
  1128. SELECT i, to_timestamp('2018-11-02 12:34:56.123456', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1129. ^
  1130. -stdin-:<main>:1:81: Error: At function: PgOp
  1131. SELECT i, to_timestamp('2018-11-02 12:34:56.123456', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1132. ^
  1133. -stdin-:<main>:1:81: Error: Unable to find an overload for operator || with given argument type(s): (unknown,int4)
  1134. SELECT i, to_timestamp('2018-11-02 12:34:56.123456', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1135. ^
  1136. <sql-statement>
  1137. SELECT i, to_timestamp('2018-11-02 12:34:56.123456789', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1138. </sql-statement>
  1139. -stdin-:<main>: Error: Type annotation
  1140. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1141. SELECT i, to_timestamp('2018-11-02 12:34:56.123456789', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1142. ^
  1143. -stdin-:<main>:1:11: Error: At function: PgCall
  1144. SELECT i, to_timestamp('2018-11-02 12:34:56.123456789', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1145. ^
  1146. -stdin-:<main>:1:84: Error: At function: PgOp
  1147. SELECT i, to_timestamp('2018-11-02 12:34:56.123456789', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1148. ^
  1149. -stdin-:<main>:1:84: Error: Unable to find an overload for operator || with given argument type(s): (unknown,int4)
  1150. SELECT i, to_timestamp('2018-11-02 12:34:56.123456789', 'YYYY-MM-DD HH24:MI:SS.FF' || i) FROM generate_series(1, 6) i;
  1151. ^
  1152. <sql-statement>
  1153. SELECT to_date('1 4 1902', 'Q MM YYYY'); -- Q is ignored
  1154. </sql-statement>
  1155. <sql-statement>
  1156. SELECT to_date('3 4 21 01', 'W MM CC YY');
  1157. </sql-statement>
  1158. <sql-statement>
  1159. SELECT to_date('2458872', 'J');
  1160. </sql-statement>
  1161. <sql-statement>
  1162. --
  1163. -- Check handling of BC dates
  1164. --
  1165. SELECT to_date('44-02-01 BC','YYYY-MM-DD BC');
  1166. </sql-statement>
  1167. <sql-statement>
  1168. SELECT to_date('-44-02-01','YYYY-MM-DD');
  1169. </sql-statement>
  1170. <sql-statement>
  1171. SELECT to_date('-44-02-01 BC','YYYY-MM-DD BC');
  1172. </sql-statement>
  1173. <sql-statement>
  1174. SELECT to_timestamp('44-02-01 11:12:13 BC','YYYY-MM-DD HH24:MI:SS BC');
  1175. </sql-statement>
  1176. <sql-statement>
  1177. SELECT to_timestamp('-44-02-01 11:12:13','YYYY-MM-DD HH24:MI:SS');
  1178. </sql-statement>
  1179. <sql-statement>
  1180. SELECT to_timestamp('-44-02-01 11:12:13 BC','YYYY-MM-DD HH24:MI:SS BC');
  1181. </sql-statement>
  1182. <sql-statement>
  1183. --
  1184. -- Check handling of multiple spaces in format and/or input
  1185. --
  1186. SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS');
  1187. </sql-statement>
  1188. <sql-statement>
  1189. SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS');
  1190. </sql-statement>
  1191. <sql-statement>
  1192. SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS');
  1193. </sql-statement>
  1194. <sql-statement>
  1195. SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS');
  1196. </sql-statement>
  1197. <sql-statement>
  1198. SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS');
  1199. </sql-statement>
  1200. <sql-statement>
  1201. SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS');
  1202. </sql-statement>
  1203. <sql-statement>
  1204. SELECT to_timestamp('2000+ JUN', 'YYYY/MON');
  1205. </sql-statement>
  1206. <sql-statement>
  1207. SELECT to_timestamp(' 2000 +JUN', 'YYYY/MON');
  1208. </sql-statement>
  1209. <sql-statement>
  1210. SELECT to_timestamp(' 2000 +JUN', 'YYYY//MON');
  1211. </sql-statement>
  1212. <sql-statement>
  1213. SELECT to_timestamp('2000 +JUN', 'YYYY//MON');
  1214. </sql-statement>
  1215. <sql-statement>
  1216. SELECT to_timestamp('2000 + JUN', 'YYYY MON');
  1217. </sql-statement>
  1218. <sql-statement>
  1219. SELECT to_timestamp('2000 ++ JUN', 'YYYY MON');
  1220. </sql-statement>
  1221. <sql-statement>
  1222. SELECT to_timestamp('2000 + + JUN', 'YYYY MON');
  1223. </sql-statement>
  1224. -stdin-:<main>: Fatal: Execution
  1225. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1226. SELECT to_timestamp('2000 + + JUN', 'YYYY MON');
  1227. ^
  1228. -stdin-:<main>:1:1: Fatal: ERROR: invalid value "+" for "MON"
  1229. DETAIL: The given value did not match any of the allowed values for this field.
  1230. SELECT to_timestamp('2000 + + JUN', 'YYYY MON');
  1231. ^
  1232. <sql-statement>
  1233. SELECT to_timestamp('2000 + + JUN', 'YYYY MON');
  1234. </sql-statement>
  1235. <sql-statement>
  1236. SELECT to_timestamp('2000 -10', 'YYYY TZH');
  1237. </sql-statement>
  1238. <sql-statement>
  1239. SELECT to_timestamp('2000 -10', 'YYYY TZH');
  1240. </sql-statement>
  1241. <sql-statement>
  1242. SELECT to_date('2011 12 18', 'YYYY MM DD');
  1243. </sql-statement>
  1244. <sql-statement>
  1245. SELECT to_date('2011 12 18', 'YYYY MM DD');
  1246. </sql-statement>
  1247. <sql-statement>
  1248. SELECT to_date('2011 12 18', 'YYYY MM DD');
  1249. </sql-statement>
  1250. <sql-statement>
  1251. SELECT to_date('2011 12 18', 'YYYY MM DD');
  1252. </sql-statement>
  1253. <sql-statement>
  1254. SELECT to_date('2011 12 18', 'YYYY MM DD');
  1255. </sql-statement>
  1256. <sql-statement>
  1257. SELECT to_date('2011 12 18', 'YYYY MM DD');
  1258. </sql-statement>
  1259. <sql-statement>
  1260. SELECT to_date('2011 12 18', 'YYYYxMMxDD');
  1261. </sql-statement>
  1262. <sql-statement>
  1263. SELECT to_date('2011x 12x 18', 'YYYYxMMxDD');
  1264. </sql-statement>
  1265. <sql-statement>
  1266. SELECT to_date('2011 x12 x18', 'YYYYxMMxDD');
  1267. </sql-statement>
  1268. -stdin-:<main>: Fatal: Execution
  1269. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1270. SELECT to_date('2011 x12 x18', 'YYYYxMMxDD');
  1271. ^
  1272. -stdin-:<main>:1:1: Fatal: ERROR: invalid value "x1" for "MM"
  1273. DETAIL: Value must be an integer.
  1274. SELECT to_date('2011 x12 x18', 'YYYYxMMxDD');
  1275. ^
  1276. <sql-statement>
  1277. --
  1278. -- Check errors for some incorrect usages of to_timestamp() and to_date()
  1279. --
  1280. -- Mixture of date conventions (ISO week and Gregorian):
  1281. SELECT to_timestamp('2005527', 'YYYYIWID');
  1282. </sql-statement>
  1283. -stdin-:<main>: Fatal: Execution
  1284. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1285. --
  1286. ^
  1287. -stdin-:<main>:1:1: Fatal: ERROR: invalid combination of date conventions
  1288. HINT: Do not mix Gregorian and ISO week date conventions in a formatting template.
  1289. --
  1290. ^
  1291. <sql-statement>
  1292. -- Insufficient characters in the source string:
  1293. SELECT to_timestamp('19971', 'YYYYMMDD');
  1294. </sql-statement>
  1295. -stdin-:<main>: Fatal: Execution
  1296. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1297. -- Insufficient characters in the source string:
  1298. ^
  1299. -stdin-:<main>:1:1: Fatal: ERROR: source string too short for "MM" formatting field
  1300. DETAIL: Field requires 2 characters, but only 1 remain.
  1301. HINT: If your source string is not fixed-width, try using the "FM" modifier.
  1302. -- Insufficient characters in the source string:
  1303. ^
  1304. <sql-statement>
  1305. -- Insufficient digit characters for a single node:
  1306. SELECT to_timestamp('19971)24', 'YYYYMMDD');
  1307. </sql-statement>
  1308. -stdin-:<main>: Fatal: Execution
  1309. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1310. -- Insufficient digit characters for a single node:
  1311. ^
  1312. -stdin-:<main>:1:1: Fatal: ERROR: invalid value "1)" for "MM"
  1313. DETAIL: Field requires 2 characters, but only 1 could be parsed.
  1314. HINT: If your source string is not fixed-width, try using the "FM" modifier.
  1315. -- Insufficient digit characters for a single node:
  1316. ^
  1317. <sql-statement>
  1318. -- We don't accept full-length day or month names if short form is specified:
  1319. SELECT to_timestamp('Friday 1-January-1999', 'DY DD MON YYYY');
  1320. </sql-statement>
  1321. -stdin-:<main>: Fatal: Execution
  1322. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1323. -- We don't accept full-length day or month names if short form is specified:
  1324. ^
  1325. -stdin-:<main>:1:1: Fatal: ERROR: invalid value "da" for "DD"
  1326. DETAIL: Value must be an integer.
  1327. -- We don't accept full-length day or month names if short form is specified:
  1328. ^
  1329. <sql-statement>
  1330. SELECT to_timestamp('Fri 1-January-1999', 'DY DD MON YYYY');
  1331. </sql-statement>
  1332. -stdin-:<main>: Fatal: Execution
  1333. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1334. SELECT to_timestamp('Fri 1-January-1999', 'DY DD MON YYYY');
  1335. ^
  1336. -stdin-:<main>:1:1: Fatal: ERROR: invalid value "uary" for "YYYY"
  1337. DETAIL: Value must be an integer.
  1338. SELECT to_timestamp('Fri 1-January-1999', 'DY DD MON YYYY');
  1339. ^
  1340. <sql-statement>
  1341. SELECT to_timestamp('Fri 1-Jan-1999', 'DY DD MON YYYY'); -- ok
  1342. </sql-statement>
  1343. <sql-statement>
  1344. -- Value clobbering:
  1345. SELECT to_timestamp('1997-11-Jan-16', 'YYYY-MM-Mon-DD');
  1346. </sql-statement>
  1347. -stdin-:<main>: Fatal: Execution
  1348. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1349. -- Value clobbering:
  1350. ^
  1351. -stdin-:<main>:1:1: Fatal: ERROR: conflicting values for "Mon" field in formatting string
  1352. DETAIL: This value contradicts a previous setting for the same field type.
  1353. -- Value clobbering:
  1354. ^
  1355. <sql-statement>
  1356. -- Non-numeric input:
  1357. SELECT to_timestamp('199711xy', 'YYYYMMDD');
  1358. </sql-statement>
  1359. -stdin-:<main>: Fatal: Execution
  1360. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1361. -- Non-numeric input:
  1362. ^
  1363. -stdin-:<main>:1:1: Fatal: ERROR: invalid value "xy" for "DD"
  1364. DETAIL: Value must be an integer.
  1365. -- Non-numeric input:
  1366. ^
  1367. <sql-statement>
  1368. -- Input that doesn't fit in an int:
  1369. SELECT to_timestamp('10000000000', 'FMYYYY');
  1370. </sql-statement>
  1371. -stdin-:<main>: Fatal: Execution
  1372. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1373. -- Input that doesn't fit in an int:
  1374. ^
  1375. -stdin-:<main>:1:1: Fatal: ERROR: value for "YYYY" in source string is out of range
  1376. DETAIL: Value must be in the range -2147483648 to 2147483647.
  1377. -- Input that doesn't fit in an int:
  1378. ^
  1379. <sql-statement>
  1380. -- Out-of-range and not-quite-out-of-range fields:
  1381. SELECT to_timestamp('2016-06-13 25:00:00', 'YYYY-MM-DD HH24:MI:SS');
  1382. </sql-statement>
  1383. -stdin-:<main>: Fatal: Execution
  1384. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1385. -- Out-of-range and not-quite-out-of-range fields:
  1386. ^
  1387. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2016-06-13 25:00:00"
  1388. -- Out-of-range and not-quite-out-of-range fields:
  1389. ^
  1390. <sql-statement>
  1391. SELECT to_timestamp('2016-06-13 15:60:00', 'YYYY-MM-DD HH24:MI:SS');
  1392. </sql-statement>
  1393. -stdin-:<main>: Fatal: Execution
  1394. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1395. SELECT to_timestamp('2016-06-13 15:60:00', 'YYYY-MM-DD HH24:MI:SS');
  1396. ^
  1397. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2016-06-13 15:60:00"
  1398. SELECT to_timestamp('2016-06-13 15:60:00', 'YYYY-MM-DD HH24:MI:SS');
  1399. ^
  1400. <sql-statement>
  1401. SELECT to_timestamp('2016-06-13 15:50:60', 'YYYY-MM-DD HH24:MI:SS');
  1402. </sql-statement>
  1403. -stdin-:<main>: Fatal: Execution
  1404. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1405. SELECT to_timestamp('2016-06-13 15:50:60', 'YYYY-MM-DD HH24:MI:SS');
  1406. ^
  1407. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2016-06-13 15:50:60"
  1408. SELECT to_timestamp('2016-06-13 15:50:60', 'YYYY-MM-DD HH24:MI:SS');
  1409. ^
  1410. <sql-statement>
  1411. SELECT to_timestamp('2016-06-13 15:50:55', 'YYYY-MM-DD HH24:MI:SS'); -- ok
  1412. </sql-statement>
  1413. <sql-statement>
  1414. SELECT to_timestamp('2016-06-13 15:50:55', 'YYYY-MM-DD HH:MI:SS');
  1415. </sql-statement>
  1416. -stdin-:<main>: Fatal: Execution
  1417. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1418. SELECT to_timestamp('2016-06-13 15:50:55', 'YYYY-MM-DD HH:MI:SS');
  1419. ^
  1420. -stdin-:<main>:1:1: Fatal: ERROR: hour "15" is invalid for the 12-hour clock
  1421. HINT: Use the 24-hour clock, or give an hour between 1 and 12.
  1422. SELECT to_timestamp('2016-06-13 15:50:55', 'YYYY-MM-DD HH:MI:SS');
  1423. ^
  1424. <sql-statement>
  1425. SELECT to_timestamp('2016-13-01 15:50:55', 'YYYY-MM-DD HH24:MI:SS');
  1426. </sql-statement>
  1427. -stdin-:<main>: Fatal: Execution
  1428. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1429. SELECT to_timestamp('2016-13-01 15:50:55', 'YYYY-MM-DD HH24:MI:SS');
  1430. ^
  1431. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2016-13-01 15:50:55"
  1432. SELECT to_timestamp('2016-13-01 15:50:55', 'YYYY-MM-DD HH24:MI:SS');
  1433. ^
  1434. <sql-statement>
  1435. SELECT to_timestamp('2016-02-30 15:50:55', 'YYYY-MM-DD HH24:MI:SS');
  1436. </sql-statement>
  1437. -stdin-:<main>: Fatal: Execution
  1438. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1439. SELECT to_timestamp('2016-02-30 15:50:55', 'YYYY-MM-DD HH24:MI:SS');
  1440. ^
  1441. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2016-02-30 15:50:55"
  1442. SELECT to_timestamp('2016-02-30 15:50:55', 'YYYY-MM-DD HH24:MI:SS');
  1443. ^
  1444. <sql-statement>
  1445. SELECT to_timestamp('2016-02-29 15:50:55', 'YYYY-MM-DD HH24:MI:SS'); -- ok
  1446. </sql-statement>
  1447. <sql-statement>
  1448. SELECT to_timestamp('2015-02-29 15:50:55', 'YYYY-MM-DD HH24:MI:SS');
  1449. </sql-statement>
  1450. -stdin-:<main>: Fatal: Execution
  1451. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1452. SELECT to_timestamp('2015-02-29 15:50:55', 'YYYY-MM-DD HH24:MI:SS');
  1453. ^
  1454. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2015-02-29 15:50:55"
  1455. SELECT to_timestamp('2015-02-29 15:50:55', 'YYYY-MM-DD HH24:MI:SS');
  1456. ^
  1457. <sql-statement>
  1458. SELECT to_timestamp('2015-02-11 86000', 'YYYY-MM-DD SSSS'); -- ok
  1459. </sql-statement>
  1460. <sql-statement>
  1461. SELECT to_timestamp('2015-02-11 86400', 'YYYY-MM-DD SSSS');
  1462. </sql-statement>
  1463. -stdin-:<main>: Fatal: Execution
  1464. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1465. SELECT to_timestamp('2015-02-11 86400', 'YYYY-MM-DD SSSS');
  1466. ^
  1467. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2015-02-11 86400"
  1468. SELECT to_timestamp('2015-02-11 86400', 'YYYY-MM-DD SSSS');
  1469. ^
  1470. <sql-statement>
  1471. SELECT to_timestamp('2015-02-11 86000', 'YYYY-MM-DD SSSSS'); -- ok
  1472. </sql-statement>
  1473. <sql-statement>
  1474. SELECT to_timestamp('2015-02-11 86400', 'YYYY-MM-DD SSSSS');
  1475. </sql-statement>
  1476. -stdin-:<main>: Fatal: Execution
  1477. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1478. SELECT to_timestamp('2015-02-11 86400', 'YYYY-MM-DD SSSSS');
  1479. ^
  1480. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2015-02-11 86400"
  1481. SELECT to_timestamp('2015-02-11 86400', 'YYYY-MM-DD SSSSS');
  1482. ^
  1483. <sql-statement>
  1484. SELECT to_date('2016-13-10', 'YYYY-MM-DD');
  1485. </sql-statement>
  1486. -stdin-:<main>: Fatal: Execution
  1487. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1488. SELECT to_date('2016-13-10', 'YYYY-MM-DD');
  1489. ^
  1490. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2016-13-10"
  1491. SELECT to_date('2016-13-10', 'YYYY-MM-DD');
  1492. ^
  1493. <sql-statement>
  1494. SELECT to_date('2016-02-30', 'YYYY-MM-DD');
  1495. </sql-statement>
  1496. -stdin-:<main>: Fatal: Execution
  1497. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1498. SELECT to_date('2016-02-30', 'YYYY-MM-DD');
  1499. ^
  1500. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2016-02-30"
  1501. SELECT to_date('2016-02-30', 'YYYY-MM-DD');
  1502. ^
  1503. <sql-statement>
  1504. SELECT to_date('2016-02-29', 'YYYY-MM-DD'); -- ok
  1505. </sql-statement>
  1506. <sql-statement>
  1507. SELECT to_date('2015-02-29', 'YYYY-MM-DD');
  1508. </sql-statement>
  1509. -stdin-:<main>: Fatal: Execution
  1510. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1511. SELECT to_date('2015-02-29', 'YYYY-MM-DD');
  1512. ^
  1513. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2015-02-29"
  1514. SELECT to_date('2015-02-29', 'YYYY-MM-DD');
  1515. ^
  1516. <sql-statement>
  1517. SELECT to_date('2015 365', 'YYYY DDD'); -- ok
  1518. </sql-statement>
  1519. <sql-statement>
  1520. SELECT to_date('2015 366', 'YYYY DDD');
  1521. </sql-statement>
  1522. -stdin-:<main>: Fatal: Execution
  1523. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1524. SELECT to_date('2015 366', 'YYYY DDD');
  1525. ^
  1526. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2015 366"
  1527. SELECT to_date('2015 366', 'YYYY DDD');
  1528. ^
  1529. <sql-statement>
  1530. SELECT to_date('2016 365', 'YYYY DDD'); -- ok
  1531. </sql-statement>
  1532. <sql-statement>
  1533. SELECT to_date('2016 366', 'YYYY DDD'); -- ok
  1534. </sql-statement>
  1535. <sql-statement>
  1536. SELECT to_date('2016 367', 'YYYY DDD');
  1537. </sql-statement>
  1538. -stdin-:<main>: Fatal: Execution
  1539. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1540. SELECT to_date('2016 367', 'YYYY DDD');
  1541. ^
  1542. -stdin-:<main>:1:1: Fatal: ERROR: date/time field value out of range: "2016 367"
  1543. SELECT to_date('2016 367', 'YYYY DDD');
  1544. ^
  1545. <sql-statement>
  1546. SELECT to_date('0000-02-01','YYYY-MM-DD'); -- allowed, though it shouldn't be
  1547. </sql-statement>
  1548. <sql-statement>
  1549. --
  1550. -- Check behavior with SQL-style fixed-GMT-offset time zone (cf bug #8572)
  1551. --
  1552. SET TIME ZONE 'America/New_York';
  1553. </sql-statement>
  1554. <sql-statement>
  1555. SET TIME ZONE '-1.5';
  1556. </sql-statement>
  1557. <sql-statement>
  1558. SHOW TIME ZONE;
  1559. </sql-statement>
  1560. -stdin-:<main>: Error: Parse Sql
  1561. -stdin-:<main>:1:1: Error: unrecognized configuration parameter "timezone"
  1562. SHOW TIME ZONE;
  1563. ^
  1564. <sql-statement>
  1565. SELECT '2012-12-12 12:00'::timestamptz;
  1566. </sql-statement>
  1567. <sql-statement>
  1568. SELECT '2012-12-12 12:00 America/New_York'::timestamptz;
  1569. </sql-statement>
  1570. -stdin-:<main>: Fatal: Execution
  1571. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1572. SELECT '2012-12-12 12:00 America/New_York'::timestamptz;
  1573. ^
  1574. -stdin-:<main>:1:1: Fatal: ERROR: time zone "america/new_york" not recognized
  1575. SELECT '2012-12-12 12:00 America/New_York'::timestamptz;
  1576. ^
  1577. <sql-statement>
  1578. SELECT to_char('2012-12-12 12:00'::timestamptz, 'YYYY-MM-DD HH:MI:SS TZ');
  1579. </sql-statement>
  1580. <sql-statement>
  1581. SELECT to_char('2012-12-12 12:00'::timestamptz, 'YYYY-MM-DD SSSS');
  1582. </sql-statement>
  1583. <sql-statement>
  1584. SELECT to_char('2012-12-12 12:00'::timestamptz, 'YYYY-MM-DD SSSSS');
  1585. </sql-statement>
  1586. <sql-statement>
  1587. RESET TIME ZONE;
  1588. </sql-statement>