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

Znacznik czasu Postgres now() nie zmienia się, gdy skrypt działa

Z TFM, podkreśla moje:

9.9.4. Aktualna data/godzina

PostgreSQL udostępnia szereg funkcji, które zwracają wartości związane z bieżącą datą i godziną. Te standardowe funkcje SQL wszystkie zwracają wartości na podstawie czasu rozpoczęcia bieżącej transakcji :

CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_TIME(precision)
CURRENT_TIMESTAMP(precision)
LOCALTIME
LOCALTIMESTAMP
LOCALTIME(precision)
LOCALTIMESTAMP(precision)

...

Ponieważ te funkcje zwracają czas rozpoczęcia bieżącej transakcji, ich wartości nie zmieniają się podczas transakcji. Jest to uważane za cechę:celem jest umożliwienie pojedynczej transakcji posiadania spójnego pojęcia „bieżącego” czasu, tak aby wielokrotne modyfikacje w ramach tej samej transakcji miały ten sam znacznik czasu.

PostgreSQL udostępnia również funkcje, które zwracają czas rozpoczęcia bieżącej instrukcji, a także aktualny czas w chwili wywołania funkcji. Pełna lista funkcji czasowych niestandardowych SQL:

transaction_timestamp()
statement_timestamp()
clock_timestamp()
timeofday()
now()

transaction_timestamp() jest odpowiednikiem CURRENT_TIMESTAMP , ale ma nazwę, która wyraźnie odzwierciedla to, co zwraca. statement_timestamp() zwraca czas rozpoczęcia bieżącej instrukcji (dokładniej, czas odebrania ostatniej wiadomości polecenia od klienta).statement_timestamp() i transaction_timestamp() zwraca tę samą wartość podczas pierwszego polecenia transakcji, ale może różnić się podczas kolejnych poleceń. clock_timestamp() zwraca aktualny aktualny czas , a zatem jego wartość zmienia się nawet w ramach pojedynczego polecenia SQL. timeofday() jest historyczną funkcją PostgreSQL. Jakclock_timestamp() , zwraca aktualny czas, ale jako sformatowany ciąg tekstowy, a nie znacznik czasu z wartością strefy czasowej.now() to tradycyjny PostgreSQL odpowiednik transaction_timestamp() .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyrównanie planetarne

  2. Ustawienie schematu w PostgreSQL JDBC nie działa

  3. Zapytanie do ORDER BY liczba wierszy zwróconych z innego SELECT

  4. Błąd gniazda Postgresql w OSX 10.7.3 podczas uruchamiania syncdb Django

  5. Transpozycja wyniku sql, tak aby jedna kolumna przechodziła do wielu kolumn