sql >> Database >  >> RDS >> PostgreSQL

Hoe u de huidige tijd kunt krijgen (zonder tijdzone) in PostgreSQL

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.


  1. Hoe u een SQL-tracering maakt om SQL Server-gebeurtenissen vast te leggen

  2. Python call sql-server opgeslagen procedure met tabelwaardeparameter

  3. Hoe gebruik ik ROW_NUMBER()?

  4. Hoe gebruik je ANY in plaats van IN in een WHERE-clausule met Rails?