index ff5e21b7275f3783a342e74bb13d8e66caf311a8..7bca3c69bac818b17d37f306d39e374bdefff93b 100644 (file)
@@ -3140,7 +3140,7 @@ DCH_from_char(FormatNode *node, const char *in, TmFromChar *out)
case DCH_DY:
case DCH_Dy:
case DCH_dy:
- from_char_seq_search(&value, &s, days,
+ from_char_seq_search(&value, &s, days_short,
n);
from_char_set_int(&out->d, value, n);
out->d++;
@@ -3239,10 +3239,6 @@ DCH_from_char(FormatNode *node, const char *in, TmFromChar *out)
SKIP_THth(s, n->suffix);
break;
case DCH_RM:
- from_char_seq_search(&value, &s, rm_months_upper,
- n);
- from_char_set_int(&out->mm, MONTHS_PER_YEAR - value, n);
- break;
case DCH_rm:
from_char_seq_search(&value, &s, rm_months_lower,
n);
index ba52b08780539f890edcedb77e06620f2b3ce21d..3064749cc4e4559d93baeee4ea99985b0fae58c6 100644 (file)
@@ -2834,6 +2834,18 @@ SELECT to_timestamp('1997 BC 11 16', 'YYYY BC MM DD');
Tue Nov 16 00:00:00 1997 PST BC
(1 row)
+SELECT to_timestamp('1997 A.D. 11 16', 'YYYY B.C. MM DD');
+ to_timestamp
+------------------------------
+ Sun Nov 16 00:00:00 1997 PST
+(1 row)
+
+SELECT to_timestamp('1997 B.C. 11 16', 'YYYY B.C. MM DD');
+ to_timestamp
+---------------------------------
+ Tue Nov 16 00:00:00 1997 PST BC
+(1 row)
+
SELECT to_timestamp('9-1116', 'Y-MMDD');
to_timestamp
------------------------------
@@ -2930,6 +2942,18 @@ SELECT to_timestamp('2011年12月18日 11:38 PM', 'YYYY-MM-DD HH12:MI PM');
Sun Dec 18 23:38:00 2011 PST
(1 row)
+SELECT to_timestamp('2011年12月18日 11:38 A.M.', 'YYYY-MM-DD HH12:MI P.M.');
+ to_timestamp
+------------------------------
+ Sun Dec 18 11:38:00 2011 PST
+(1 row)
+
+SELECT to_timestamp('2011年12月18日 11:38 P.M.', 'YYYY-MM-DD HH12:MI P.M.');
+ to_timestamp
+------------------------------
+ Sun Dec 18 23:38:00 2011 PST
+(1 row)
+
SELECT to_timestamp('2011年12月18日 11:38 +05', 'YYYY-MM-DD HH12:MI TZH');
to_timestamp
------------------------------
@@ -2960,6 +2984,32 @@ SELECT to_timestamp('2011年12月18日 11:38 20', 'YYYY-MM-DD HH12:MI TZM');
Sun Dec 18 03:18:00 2011 PST
(1 row)
+SELECT to_timestamp('2011年12月18日 11:38 PST', 'YYYY-MM-DD HH12:MI TZ'); -- NYI
+ERROR: formatting field "TZ" is only supported in to_char
+SELECT to_timestamp('2018年11月02日 12:34:56.025', 'YYYY-MM-DD HH24:MI:SS.MS');
+ to_timestamp
+----------------------------------
+ Fri Nov 02 12:34:56.025 2018 PDT
+(1 row)
+
+SELECT to_date('1 4 1902', 'Q MM YYYY'); -- Q is ignored
+ to_date
+------------
+ 04-01-1902
+(1 row)
+
+SELECT to_date('3 4 21 01', 'W MM CC YY');
+ to_date
+------------
+ 04-15-2001
+(1 row)
+
+SELECT to_date('2458872', 'J');
+ to_date
+------------
+ 01-23-2020
+(1 row)
+
--
-- Check handling of multiple spaces in format and/or input
--
ERROR: invalid value "1)" for "MM"
DETAIL: Field requires 2 characters, but only 1 could be parsed.
HINT: If your source string is not fixed-width, try using the "FM" modifier.
+-- We don't accept full-length day or month names if short form is specified:
+SELECT to_timestamp('Friday 1-January-1999', 'DY DD MON YYYY');
+ERROR: invalid value "ay" for "DD"
+DETAIL: Value must be an integer.
+SELECT to_timestamp('Fri 1-January-1999', 'DY DD MON YYYY');
+ERROR: invalid value "ary-" for "YYYY"
+DETAIL: Value must be an integer.
+SELECT to_timestamp('Fri 1-Jan-1999', 'DY DD MON YYYY'); -- ok
+ to_timestamp
+------------------------------
+ Fri Jan 01 00:00:00 1999 PST
+(1 row)
+
-- Value clobbering:
SELECT to_timestamp('1997-11-Jan-16', 'YYYY-MM-Mon-DD');
ERROR: conflicting values for "Mon" field in formatting string
index c6822e6c1b74181b6d3bc75aaf4a98329f78163a..87fdcdcf297d561f76d37e3c05d7f3bb9e64b689 100644 (file)
@@ -415,6 +415,9 @@ SELECT to_timestamp('20000-1116', 'YYYY-MMDD');
SELECT to_timestamp('1997 AD 11 16', 'YYYY BC MM DD');
SELECT to_timestamp('1997 BC 11 16', 'YYYY BC MM DD');
+SELECT to_timestamp('1997 A.D. 11 16', 'YYYY B.C. MM DD');
+SELECT to_timestamp('1997 B.C. 11 16', 'YYYY B.C. MM DD');
+
SELECT to_timestamp('9-1116', 'Y-MMDD');
SELECT to_timestamp('95-1116', 'YY-MMDD');
SELECT to_timestamp('2011年12月18日 11:38 AM', 'YYYY-MM-DD HH12:MI PM');
SELECT to_timestamp('2011年12月18日 11:38 PM', 'YYYY-MM-DD HH12:MI PM');
+SELECT to_timestamp('2011年12月18日 11:38 A.M.', 'YYYY-MM-DD HH12:MI P.M.');
+SELECT to_timestamp('2011年12月18日 11:38 P.M.', 'YYYY-MM-DD HH12:MI P.M.');
+
SELECT to_timestamp('2011年12月18日 11:38 +05', 'YYYY-MM-DD HH12:MI TZH');
SELECT to_timestamp('2011年12月18日 11:38 -05', 'YYYY-MM-DD HH12:MI TZH');
SELECT to_timestamp('2011年12月18日 11:38 +05:20', 'YYYY-MM-DD HH12:MI TZH:TZM');
SELECT to_timestamp('2011年12月18日 11:38 -05:20', 'YYYY-MM-DD HH12:MI TZH:TZM');
SELECT to_timestamp('2011年12月18日 11:38 20', 'YYYY-MM-DD HH12:MI TZM');
+SELECT to_timestamp('2011年12月18日 11:38 PST', 'YYYY-MM-DD HH12:MI TZ'); -- NYI
+
+SELECT to_timestamp('2018年11月02日 12:34:56.025', 'YYYY-MM-DD HH24:MI:SS.MS');
+
+SELECT to_date('1 4 1902', 'Q MM YYYY'); -- Q is ignored
+SELECT to_date('3 4 21 01', 'W MM CC YY');
+SELECT to_date('2458872', 'J');
+
--
-- Check handling of multiple spaces in format and/or input
--
-- Insufficient digit characters for a single node:
SELECT to_timestamp('19971)24', 'YYYYMMDD');
+-- We don't accept full-length day or month names if short form is specified:
+SELECT to_timestamp('Friday 1-January-1999', 'DY DD MON YYYY');
+SELECT to_timestamp('Fri 1-January-1999', 'DY DD MON YYYY');
+SELECT to_timestamp('Fri 1-Jan-1999', 'DY DD MON YYYY'); -- ok
+
-- Value clobbering:
SELECT to_timestamp('1997-11-Jan-16', 'YYYY-MM-Mon-DD');