sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres now() tidsstemplet ændres ikke, når scriptet virker

Fra TFM, fremhæver min:

9.9.4. Aktuel dato/klokkeslæt

PostgreSQL indeholder en række funktioner, der returnerer værdier relateret til den aktuelle dato og klokkeslæt. Disse SQL-standardfunktioner alle returnerer værdier baseret på starttidspunktet for den aktuelle transaktion :

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

...

Da disse funktioner returnerer starttidspunktet for den aktuelle transaktion, ændres deres værdier ikke under transaktionen. Dette betragtes som en funktion:hensigten er at tillade en enkelt transaktion at have en konsistent forestilling om den "aktuelle" tid, så flere ændringer inden for samme transaktion bærer det samme tidsstempel.

PostgreSQL leverer også funktioner, der returnerer starttidspunktet for den aktuelle sætning, såvel som den aktuelle aktuelle tid i det øjeblik, funktionen kaldes. Den komplette liste over ikke-SQL-standard tidsfunktioner er:

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

transaction_timestamp() svarer til CURRENT_TIMESTAMP , men er navngivet til klart at afspejle, hvad det returnerer. statement_timestamp() returnerer starttidspunktet for den aktuelle sætning (mere specifikt, tidspunktet for modtagelse af den seneste kommandomeddelelse fra klienten).statement_timestamp() og transaction_timestamp() returnerer den samme værdi under den første kommando af en transaktion, men kan variere under efterfølgende kommandoer. clock_timestamp() returnerer den faktiske aktuelle tid , og derfor ændres dens værdi selv inden for en enkelt SQL-kommando. timeofday() er en historisk PostgreSQL-funktion. Ligesomclock_timestamp() , returnerer det det aktuelle klokkeslæt, men som en formateret tekststreng i stedet for et tidsstempel med tidszoneværdi.now() er en traditionel PostgreSQL svarende til transaction_timestamp() .




  1. Partitionsfunktion COUNT() OVER mulig ved brug af DISTINCT

  2. Sådan forbinder du to tabeller ved hjælp af en kommasepareret liste i sammenføjningsfeltet

  3. Hvordan henter man et billede fra en SQLite-database?

  4. Opdag, hvordan kardinalitet påvirker ydeevnen