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

Jak przekonwertować ciąg na znacznik czasu bez strefy czasowej?

Ciąg znaków reprezentujący timestamp (=timestamp without time zone ) zależy od ustawień regionalnych. Dlatego, aby uniknąć niejasności prowadzących do błędów danych lub wyrzucenia przez Postgresa wyjątku, masz dwie możliwości:

1.) Użyj formatu ISO 8601 , który działa tak samo z dowolnym lokalizacja lub DateStyle ustawienie:

'2013-08-20 14:52:49'

Może zaistnieć potrzeba jawnego rzutowania literału ciągu, gdy typ danych nie może być wyprowadzony z kontekstu, w zależności od przypadku użycia:

'2013-08-20 14:52:49'::timestamp

2.) Konwertuj ciąg na timestamp używając to_timestamp() z pasującym wzorem szablonu:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss')

Zwraca timestamptz , zakładając bieżące ustawienie strefy czasowej. Zazwyczaj (jak w przydziale) typ jest odpowiednio wymuszony. Dla timestamp , oznacza to, że przesunięcie czasowe jest obcinane i otrzymujesz oczekiwaną wartość. Ponownie, jeśli typu docelowego nie można wyprowadzić z kontekstu, może być konieczne jawne rzutowanie:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss')::timestamp

Ponieważ to po prostu usuwa przesunięcie czasu, daje oczekiwaną wartość. Lub użyj AT TIME ZONE konstrukcja z wybraną strefą czasową:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss') AT TIME ZONE 'UTC'

Podczas gdy docelowa strefa czasowa jest taka sama jak Twoja aktualna timezone ustawienie, żadna transformacja nie ma miejsca. W przeciwnym razie wynikowy znacznik czasu jest odpowiednio transponowany. Dalsza lektura:

  • Całkowite ignorowanie stref czasowych w Rails i PostgreSQL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wymusić unikalność zestawu między wieloma kolumnami?

  2. przekonwertować typ danych MySQL SET na Postgres

  3. GROUP BY i agregacja kolejnych wartości liczbowych

  4. PostgreSQL 9.3:Dynamiczna tabela przestawna

  5. Równoległe unnest() i porządek sortowania w PostgreSQL