Problem:
Du vill få aktuell tid med dess tidszonförskjutning i en PostgreSQL-databas.
Lösning:
Vi använder funktionen CURRENT_TIME för att få aktuell information om tid och tidszon. Här är frågan du skulle skriva:
SELECT CURRENT_TIME;
Här är resultatet av frågan:
16:10:11.232455-05
Diskussion:
PostgreSQL-funktionen CURRENT_TIME
returnerar den aktuella tids- och tidszonförskjutningen för maskinen som PostgreSQL körs på. Det anges som ett värde i 'hh:mm:ss.nnnnnn+/-tz' formatera. I detta format:
- hh är en tvåsiffrig timme.
- mm är en tvåsiffrig minut.
- ss är en tvåsiffrig sekund.
- nnnnnn definierar antalet bråksekunder (d.v.s. precisionen) från 0 till 6.
- +tz eller -tz är tidszonens förskjutning, antingen plus eller minus från UTC.
CURRENT_TIME
har inga fästen. Men om du vill visa tiden med en specifik precision kan du lägga till parenteser och omge ett heltal från 0 till 6. (Ett "0"-argument returnerar inga bråkdelar, "1" returnerar en bråkdelssekund (t.ex. en placeras bakom decimalen), etc. Detta kommer att returnera tiden med ditt deklarerade antal bråksekunder och tidszonförskjutningen. Titta på nästa exempel:
SELECT CURRENT_TIME(2) ;
Här är resultatet av frågan:
16:10:11.23-05
Detta resultat innehåller en 2-siffrig bråkdelssekund eftersom vi sätter 2 som argument. Tidszonförskjutningen visas som antingen positiv eller negativ (+ eller -) beroende på om tiden ligger före eller efter UTC.
Tiden som returneras av den här funktionen ändras inte under transaktioner eller en enda fråga. Det är alltid den tidpunkt då transaktionen startade.