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:
- 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'
. - 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.