sql >> Databáze >  >> RDS >> PostgreSQL

Jak převést řetězce data na časové razítko bez znalosti formátu data

Musíte nastavit svůj styl data na „ISO, DMY“. Ve výchozím nastavení je nastaveno na "ISO, MDY" a způsobí selhání vašeho příkladu:

> 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)

(příklady provedené v PostgreSQL 9.1, ale nastavení DateStyle a související chování jsou staré, takže by měly fungovat dobře)



  1. CHYBA:operátor neexistuje:číselný ~* neznámý

  2. Konfigurace indexu mysql

  3. Jak vrátit hodnotu Unicode pro daný znak v SQL Server – UNICODE()

  4. Použití dvou agregovaných hodnot z poddotazu SELECT v jednom vnějším dotazu SELECT