Problem:
Du vil gerne have den aktuelle tid i en PostgreSQL-database. Du vil ikke have tidszonen forskudt.
Løsning:
Vi bruger funktionen LOCALTIME
for at få det aktuelle klokkeslæt uden tidszoneforskydning.
SELECT LOCALTIME;
Her er resultatet af forespørgslen:
22:15:51.987914
Diskussion:
PostgreSQL-funktionen LOCALTIME
returnerer den aktuelle tid på maskinen, der kører PostgreSQL. Det returnerer det som en tidsdatatype i 'hh:mm:ss.nnnnnn ' format. I dette format:
- hh er en 2-cifret time.
- mm er et 2-cifret minut.
- ss er et 2-cifret sekund.
- nnnnnn er brøkdele af sekunder (fra nul til 6-cifret præcision).
Som du bemærker, har denne funktion ingen parenteser. Men hvis du vil vise tiden med en bestemt præcision, skal du bruge parenteser med et heltal fra 0 til 6 som argument. Dette vil returnere tiden med det ønskede antal brøksekunder. For eksempel LOCALTIME(1)
angiver kun et brøksekund (dvs. et sted efter decimalen); 2 vil returnere to pladser osv. Standardværdien (ingen parenteser eller tomme parenteser) er seks, hvilket også er det maksimale antal brøksekunder. Se på det næste eksempel:
SELECT LOCALTIME(0) ;
Her er resultatet af forespørgslen:
21:12:06
Dette resultat indeholder ikke brøkdele af sekunder, fordi vi sætter 0 som argument.
LOCALTIME
returnerer det tidspunkt, hvor den aktuelle transaktion starter. Forskellen mellem LOCALTIME
og CURRENT_TIME
er, at LOCALTIME ikke inkluderer tidszoneforskydningen.