Problém:
Chcete převést řetězec na datum v sadě výsledků.
Příklad:
Naše databáze obsahuje tabulku s názvem accounts_creation
s polem s názvem company_id
datového typu NUMBER a dvě pole NVARCHAR2 s názvem company_name
a registration_date
jak je uvedeno níže.
id_společnosti | název_společnosti | registrační_datum |
---|---|---|
1 | Decathlon | 5. ledna 1978 |
2 | Vestel | 21. září 1991 |
3 | Bílá kaple | 18. října 2017 |
4 | Stříbrný pohár | 4. prosince 2021 |
5 | JohnnyBros | 28. srpna 1984 |
Chceme převést sloupec řetězce registration_date
do sloupce data.
Řešení:
Použijeme TO_DATE()
funkce. Zde je dotaz:
SELECT company_id, company_name, TO_DATE(registration_date,'DD Mon YEAR') AS registration_date FROM accounts_creation;
Zde je výsledek dotazu:
id_společnosti | název_společnosti | registrační_datum |
---|---|---|
1 | Decathlon | 05-JAN-78 |
2 | Vestel | 21-SEP-91 |
3 | Bílá kaple | 18-17. října |
4 | Stříbrný pohár | 4-DEC-21 |
5 | JohnnyBros | 28-AUG-84 |
Diskuse:
TO_DATE(string, format)
funkce v Oracle převádí hodnotu řetězce na datum. Funkce používá dva argumenty:řetězec, který se má převést, a formát data. Ve specifikaci formátu DD
znamená den v měsíci (1-31), MON znamená zkrácený název měsíce a YEAR
značí 4místný rok. Více o dostupných formátech si můžete přečíst v dokumentaci Oracle SQL zde.