PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak przekonwertować ciągi dat na znacznik czasu bez znajomości formatu daty?

Musisz ustawić styl daty na „ISO, DMY”. Jest ustawiony domyślnie na „ISO, MDY” i może spowodować awarię przykładu:

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

(przykłady zrobione w PostgreSQL 9.1, ale ustawienie DateStyle i związane z nim zachowanie są stare, więc powinno działać dobrze)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wersje Postgresa nie są kompatybilne

  2. Jak uzyskać wyniki postgresql_query z Ansible?

  3. Nazwy procesów PostgreSQL w systemie Windows

  4. Powolne wstawianie w PostgreSQL przy użyciu JDBC

  5. Jak wyświetlić wszystkie tabele ze zmianami danych w ciągu ostatnich 24 godzin?