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.