sql >> Database >  >> RDS >> PostgreSQL

Een string converteren naar een datum in PostgreSQL

Probleem:

U wilt een string met een datum converteren naar de PostgreSQL datum gegevenstype.

Laten we een datumreeks converteren naar de datum gegevenstype in plaats van de huidige tekst gegevenstype.

Oplossing:

Hier is voorbeeld 1 van het gebruik van de TO_DATE() functie. Dit is de vraag die je zou schrijven:

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

En hier is het resultaat van de zoekopdracht:

nieuwe_datum
04-03-2002

Laten we eens kijken naar voorbeeld 2 van de TO_DATE() functie. Let op het iets andere datumformaat:

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

Dit is het resultaat van de zoekopdracht:

nieuwe_datum
07-06-2015

Discussie:

Gebruik de functie TO_DATE() om een ​​tekstwaarde met een datum om te zetten in de datum data type. Deze functie heeft twee argumenten:

  1. Een datumwaarde. Dit kan een string zijn (een tekstwaarde) of een tekstkolom met datuminformatie. In ons voorbeeld gebruikten we de strings '20020304' en '2015/06/07' .
  2. Het invoerdatumformaat. In ons voorbeeld gebruikten we 'YYYYMMDD' en 'YYYY/MM/DD' . Merk op dat het invoerformaat een string is.

Het invoerformaat bepaalt hoe PostgreSQL de tekens verwerkt in de tekenreeks waarin de datum is opgeslagen. De specificatie 'YYYY' als de eerste vier tekens geeft aan dat deze een jaartal van 4 cijfers vertegenwoordigen. Vervolgens staat 'MM' voor een 2-cijferige maand en 'DD' voor een 2-cijferige dag. U vindt een lijst met alle specificaties in de PostgreSQL-documentatie.

In voorbeeld 1 is de tekenreeksdatum '20020304 ’ is geconverteerd naar de datum '2002-03-04' (een datum data type. In voorbeeld 2 is de tekenreeks '2015/06/07' is geconverteerd naar de datum '2015-06-07' . In het tweede voorbeeld gebruikten we de schuine streep / tussen datumdelen om correct te converteren van een string naar de datum gegevenstype.


  1. VARRAY's maken als PL/SQL-bloklid in Oracle Database

  2. Hoe te sorteren in SQL

  3. Hoe krijg ik lokale gegevens in een alleen-lezen database met dplyr?

  4. DATETIMEFROMPARTS() Voorbeelden in SQL Server (T-SQL)