sql >> Databáze >  >> RDS >> Oracle

Vytvořte datum z roku, měsíce a dne

Pro váš příklad můžete použít case :

select (case when my_year is not null and my_year <> 0 and
                  my_year between -4713 and 9999
             then TO_DATE(my_year || '-01-01', 'YYYY-MM-DD')
        end)

Oracle bohužel nemá způsob, jak provést převod, pokud je to možné, a jinak vrátit hodnotu NULL. SQL Server nedávno představil try_convert() pro tento účel.

Jednou z možností je napsat vlastní funkci s obslužnou rutinou výjimky pro neúspěšnou konverzi. Obsluha výjimky by jednoduše vrátila NULL za špatný formát.



  1. Salesforce SOQL od Crystal Reports

  2. Jak zjistit, zda byl aktualizační dotaz MySQL úspěšný, když jsou data předaná v dotazu stejná jako data již v databázi?

  3. Příkaz MySQL pro vyhledávání CSV (nebo podobného pole)

  4. Řazení sloupce VARCHAR jako FLOAT pomocí operátoru CAST v MySQL nefunguje