PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So konvertieren Sie Datumszeichenfolgen in Zeitstempel, ohne das Datumsformat zu kennen

Sie müssen Ihren Datumsstil auf "ISO, DMY" einstellen. Es ist standardmäßig auf "ISO, MDY" eingestellt und würde dazu führen, dass Ihr Beispiel fehlschlägt:

> show datestyle;

 DateStyle 
-----------
 ISO, MDY
(1 row)

> select '28-Sep-13'::date;
    date    
------------
 2013-09-28
(1 row)

> select '28/09/2013'::date;
ERROR:  date/time field value out of range: "28/09/2013"
LINE 1: select '28/09/2013'::date;
               ^
HINT:  Perhaps you need a different "datestyle" setting.

> set datestyle = 'ISO, DMY';
SET

> select '28-Sep-13'::date;
    date    
------------
 2013-09-28
(1 row)

> select '28/09/2013'::date;
    date    
------------
 2013-09-28
(1 row)

(Beispiele in PostgreSQL 9.1, aber die DateStyle-Einstellung und das zugehörige Verhalten sind uralt, sollten also gut funktionieren)