sql >> Databasteknik >  >> RDS >> Oracle

Skapa datum från år, månad och dag

Som ditt exempel kan du använda 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)

Tyvärr har Oracle ingen metod för att göra konverteringen, om möjligt, och annars returnera NULL. SQL Server introducerade nyligen try_convert() för detta ändamål.

Ett alternativ är att skriva din egen funktion med en undantagshanterare för den misslyckade konverteringen. Undantagshanteraren skulle helt enkelt returnera NULL för ett dåligt format.



  1. Fulltextsökning ger olika resultat på test och live

  2. Hur kan jag ställa in startpunkten för kolumnen primärnyckel (ID) i Postgres via en rails-migrering

  3. Räkna poster från två tabeller grupperade efter ett fält

  4. Rangordning baserat på två kolumner