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

Sådan konverteres en streng til en dato i PostgreSQL

Problem:

Du vil gerne konvertere en streng, der indeholder en dato, til PostgreSQL datoen datatype.

Lad os konvertere en datostreng til datoen datatype i stedet for dens nuværende tekst datatype.

Løsning:

Her er eksempel 1 på, hvordan du bruger TO_DATE() fungere. Dette er den forespørgsel, du ville skrive:

SELECT TO_DATE('20020304', 'YYYYMMDD') AS  new_date;

Og her er resultatet af forespørgslen:

ny_dato
2002-03-04

Lad os se på eksempel 2 i TO_DATE() fungere. Bemærk det lidt anderledes datoformat:

SELECT TO_DATE('2015/06/07', 'YYYY/MM/DD') AS  new_date;

Her er resultatet af forespørgslen:

ny_dato
2015-06-07

Diskussion:

Brug funktionen TO_DATE() at konvertere en tekstværdi, der indeholder en dato, til datoen datatype. Denne funktion tager to argumenter:

  1. En datoværdi. Dette kan være en streng (en tekstværdi) eller en tekstkolonne, der indeholder datooplysninger. I vores eksempel brugte vi strengene '20020304' og '2015/06/07' .
  2. Inputdatoformatet. I vores eksempel brugte vi 'YYYYMMDD' og 'YYYY/MM/DD' . Bemærk, at inputformatet er en streng.

Inputformatet bestemmer, hvordan PostgreSQL vil behandle tegnene i strengen, hvor datoen er gemt. Specifikationen 'ÅÅÅÅ' som de første fire tegn angiver, at disse repræsenterer et 4-cifret årstal. Dernæst repræsenterer 'MM' en 2-cifret måned og 'DD' en 2-cifret dag. Du kan finde en liste over alle specifikationer i PostgreSQL-dokumentationen.

I eksempel 1 er strengdatoen '20020304 ’ blev konverteret til datoen '2002-03-04' (en dato datatype. I eksempel 2, strengen '2015/06/07' blev konverteret til datoen '2015-06-07' . I det andet eksempel brugte vi skråstregen / mellem datodele for korrekt at konvertere fra en streng til datoen datatype.


  1. SQL ikke lig med (!=) Operator for begyndere

  2. SQL Server:SLET vs TRUNCATE

  3. Sådan formateres en Datetime i SQLite

  4. 2 måder at formatere et tal med førende nuller i Oracle