sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan får du den aktuelle dato og tid (uden tidszone) i PostgreSQL

Problem:

Du vil gerne have den aktuelle dato og tid i en PostgreSQL-database. Du behøver ikke tidszoneforskydningen.

Løsning:

Vi bruger funktionen LOCALTIMESTAMP for at få den aktuelle dato og klokkeslæt uden nogen tidszoneoplysninger:

SELECT LOCALTIMESTAMP ;

Her er resultatet af forespørgslen:

2019-09-24 20:10:58.977914

Diskussion:

PostgreSQL-funktionen LOCALTIMESTAMP returnerer den aktuelle dato og klokkeslæt (på den maskine, der kører den forekomst af PostgreSQL) som et tidsstempel værdi. Den bruger "ÅÅÅÅ-MM-DD tt:mm:ss.nnnnnnnn ' format, hvor:

  • ÅÅÅÅ er et 4-cifret årstal.
  • MM er en 2-cifret måned.
  • DD er en 2-cifret dag.
  • 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 ønsker at vise dato og klokkeslæt med en bestemt præcision, skal du sætte et heltal fra 0 til 6 som et argument i parentes. Dette vil returnere dato og klokkeslæt med det ønskede antal brøksekunder. For eksempel LOCALTIMESTAMP(1) angiver kun et brøksekund (dvs. et sted efter decimalen); 2 vil returnere to pladser osv. Standardpræcisionen er 6, hvilket også er det maksimale antal brøksekunder; dette er, hvad du får, hvis du slet ikke bruger beslag. Se på det næste eksempel:

SELECT LOCALTIMESTAMP(0) ;

Her er resultatet af forespørgslen:

2019-09-24 20:10:58

Dette resultat indeholder ikke brøkdele af sekunder, fordi vi sætter 0 som argument.

Denne funktion returnerer det tidspunkt, hvor den aktuelle transaktion startede. Forskellen mellem LOCALTIMESTAMP og CURRENT_TIMESTAMP er det LOCALTIMESTAMP inkluderer ikke tidszoneforskydningen.


  1. Hvordan ændrer jeg kolonnens standardværdi i PostgreSQL?

  2. Sådan bruger du flere databaser i Laravel

  3. Udførelsesrækkefølge for betingelser i SQL 'where'-sætning

  4. Sådan vælger du hver række, hvor kolonneværdien IKKE er adskilt