sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres now() tidsstämpel ändras inte när skriptet fungerar

Från TFM, belyser min:

9.9.4. Aktuellt datum/tid

PostgreSQL tillhandahåller ett antal funktioner som returnerar värden relaterade till aktuellt datum och tid. Dessa SQL-standardfunktioner alla returvärden baserat på starttiden för den aktuella transaktionen :

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

...

Eftersom dessa funktioner returnerar starttiden för den aktuella transaktionen, ändras inte deras värden under transaktionen. Detta anses vara en funktion:avsikten är att tillåta en enskild transaktion att ha en konsekvent uppfattning om den "aktuella" tiden, så att flera modifieringar inom samma transaktion har samma tidsstämpel.

PostgreSQL tillhandahåller också funktioner som returnerar starttiden för den aktuella satsen, såväl som den faktiska aktuella tiden vid det ögonblick då funktionen anropas. Den kompletta listan över icke-SQL-standard tidsfunktioner är:

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

transaction_timestamp() motsvarar CURRENT_TIMESTAMP , men är namngiven för att tydligt återspegla vad den returnerar. statement_timestamp() returnerar starttiden för den aktuella satsen (mer specifikt tidpunkten för mottagandet av det senaste kommandomeddelandet från klienten).statement_timestamp() och transaction_timestamp() returnerar samma värde under det första kommandot i en transaktion, men kan skilja sig under efterföljande kommandon. clock_timestamp() returnerar den faktiska aktuella tiden , och därför ändras dess värde även inom ett enda SQL-kommando. timeofday() är en historisk PostgreSQL-funktion. Gillaclock_timestamp() , returnerar den aktuella tiden, men som en formaterad textsträng snarare än en tidsstämpel med tidszonvärde.now() är en traditionell PostgreSQL som motsvarar transaction_timestamp() .




  1. Hur kan jag skapa en användare i SQL Server Express-databas som jag har lagt till i mitt projekt?

  2. Korstabellbegränsningar i PostgreSQL

  3. Hur man skapar och tar bort databaser och tabeller i PostgreSQL

  4. Hur man jämför två tabeller kolumn för kolumn i orakel