Probleem:
U wilt de huidige tijd in een PostgreSQL-database krijgen. U wilt niet dat de tijdzone wordt verschoven.
Oplossing:
We gebruiken de functie LOCALTIME
om de huidige tijd te krijgen zonder de tijdzoneverschuiving.
SELECT LOCALTIME;
Dit is het resultaat van de zoekopdracht:
22:15:51.987914
Discussie:
De PostgreSQL-functie LOCALTIME
geeft de huidige tijd terug op de machine waarop PostgreSQL draait. Het retourneert het als een tijdgegevenstype in de 'uu:mm:ss.nnnnnn ' formaat. In dit formaat:
- uu is een 2-cijferig uur.
- mm is een 2-cijferige minuut.
- ss is een seconde van twee cijfers.
- nnnnnn zijn fractionele seconden (van nul tot 6-cijferige precisie).
Zoals u ziet, heeft deze functie geen haakjes. Als u de tijd echter met een bepaalde precisie wilt weergeven, gebruikt u haakjes met een geheel getal van 0 tot 6 als argument. Dit geeft de tijd terug met het gewenste aantal fractionele seconden. Bijvoorbeeld LOCALTIME(1)
geeft slechts één fractionele seconde aan (d.w.z. één plaats achter de komma); 2 retourneert twee plaatsen, enz. De standaardwaarde (geen haakjes of lege haakjes) is zes, wat ook het maximale aantal seconden is. Kijk naar het volgende voorbeeld:
SELECT LOCALTIME(0) ;
Dit is het resultaat van de zoekopdracht:
21:12:06
Dit resultaat bevat geen fractionele seconden omdat we 0 als argument hebben ingevoerd.
LOCALTIME
geeft de tijd terug waarop de huidige transactie begint. Het verschil tussen LOCALTIME
en CURRENT_TIME
is dat LOCALTIME de tijdzone-offset niet omvat.