Problem:
Du vill konvertera en sträng som innehåller ett datum till PostgreSQL datum datatyp.
Låt oss konvertera en datumsträng till datum datatyp istället för dess nuvarande text datatyp.
Lösning:
Här är exempel 1 på hur du använder TO_DATE()
fungera. Det här är frågan du skulle skriva:
SELECT TO_DATE('20020304', 'YYYYMMDD') AS new_date;
Och här är resultatet av frågan:
nytt_datum |
---|
2002-03-04 |
Låt oss titta på exempel 2 av TO_DATE()
fungera. Lägg märke till det något annorlunda datumformatet:
SELECT TO_DATE('2015/06/07', 'YYYY/MM/DD') AS new_date;
Här är resultatet av frågan:
nytt_datum |
---|
2015-06-07 |
Diskussion:
Använd funktionen TO_DATE()
för att konvertera ett textvärde som innehåller ett datum till datumet data typ. Denna funktion tar två argument:
- Ett datumvärde. Detta kan vara en sträng (ett textvärde) eller en textkolumn som innehåller datuminformation. I vårt exempel använde vi strängarna
'20020304'
och'2015/06/07'
. - Inmatningsdatumformatet. I vårt exempel använde vi
'YYYYMMDD'
och'YYYY/MM/DD'
. Lägg märke till att inmatningsformatet är en sträng.
Inmatningsformatet avgör hur PostgreSQL kommer att behandla tecknen i strängen där datumet lagras. Specifikationen 'ÅÅÅÅ' som de första fyra tecknen indikerar att dessa representerar ett 4-siffrigt årtal. Därefter representerar 'MM' en tvåsiffrig månad och 'DD' en tvåsiffrig dag. Du kan hitta en lista över alla specifikationer i PostgreSQL-dokumentationen.
I exempel 1, strängdatumet som "20020304
’ konverterades till datum '2002-03-04'
(ett datum data typ. I exempel 2, strängen '2015/06/07'
konverterades till datumet '2015-06-07'
. I det andra exemplet använde vi snedstrecket /
mellan datumdelar för att korrekt konvertera från en sträng till datum datatyp.