sql >> Database teknologi >  >> RDS >> Oracle

Opret dato fra år, måned og dag

Som dit eksempel kan du bruge 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)

Desværre har Oracle ikke en metode til at udføre konverteringen, hvis det er muligt, og ellers returnere NULL. SQL Server introducerede for nylig try_convert() til dette formål.

En mulighed er at skrive din egen funktion med en undtagelsesbehandler for den mislykkede konvertering. Undtagelsesbehandleren ville simpelthen returnere NULL for et dårligt format.



  1. Skal SELECT ... FOR UPDATE altid indeholde ORDER BY?

  2. COUNT() Funktion i MariaDB

  3. Kan ikke oprette forbindelse til MySQL live med Laravel 5

  4. Indstille en kolonne som tidsstempel i MySql workbench?