sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man får den aktuella tiden (utan tidszon) i PostgreSQL

Problem:

Du vill ha aktuell tid i en PostgreSQL-databas. Du vill inte ha tidszonförskjutning.

Lösning:

Vi använder funktionen LOCALTIME för att få aktuell tid utan tidszonförskjutning.

SELECT LOCALTIME;

Här är resultatet av frågan:

	22:15:51.987914

Diskussion:

PostgreSQL-funktionen LOCALTIME returnerar den aktuella tiden på maskinen som kör PostgreSQL. Den returnerar den som en tidsdatatyp i 'hh:mm:ss.nnnnnn ' format. I detta format:

  • hh är en tvåsiffrig timme.
  • mm är en tvåsiffrig minut.
  • ss är en tvåsiffrig sekund.
  • nnnnnn är bråkdelar av sekunder (från noll till sexsiffrig precision).

Som du märker har denna funktion inga parenteser. Men om du vill visa tiden med en specifik precision, använd parenteser med ett heltal från 0 till 6 som argument. Detta kommer att returnera tiden med önskat antal bråkdelar av sekunder. Till exempel, LOCALTIME(1) betecknar endast en bråkdelsekund (d.v.s. en plats efter decimalen); 2 kommer att returnera två platser, etc. Standardvärdet (inga parenteser eller tomma parenteser) är sex, vilket också är det maximala antalet bråkdelar. Titta på nästa exempel:

SELECT LOCALTIME(0) ;

Här är resultatet av frågan:

21:12:06

Detta resultat innehåller inte bråkdelar av sekunder eftersom vi sätter 0 som argument.

LOCALTIME returnerar den tidpunkt då den aktuella transaktionen startar. Skillnaden mellan LOCALTIME och CURRENT_TIME är att LOCALTIME inte inkluderar tidszonsförskjutningen.


  1. Mata ut SQLite-frågeresultat som ett INSERT-uttalande

  2. Det gick inte att byta namn på en kolumn i MySQL

  3. String -> java.util.Date -> java.sql.Date (med tidsstämpel)

  4. SQLException:Protokollbrott. Oracle JDBC-drivrutinsproblem