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

Come scrivere il codice in Oracle SQL (come 'CCYYMMDD' in 102 )

Non è possibile scrivere una funzione per determinare quale stringa di data numerica corrisponde a quale formato poiché la stringa di data potrebbe essere di più formati:

Ad esempio, 010203 potrebbe essere:

  • Formato 2:DDMMYY 1 febbraio 03
  • Formato 3:MMDDYY 2 gennaio 03
  • Formato 101:YYMMDD 3 febbraio 01
  • Formato 306:DDHHMM 02:03 del giorno 1
  • Formato 402:HHMMSS 01:02:03
  • Formato 405:MMMMSS 102 minuti 3 secondi
  • Formato 610:CCYYMM marzo 0102
  • Formato 616:CCYYWW Settimana 3 di 0102

Allo stesso modo 10080102 potrebbe essere:

  • Formato 4:DDMMCCYY 10 agosto 102
  • Formato 102:CCYYMMDD 2 gennaio 1008
  • Formato 305:MMDDHHMM 8 ottobre 01:02
  • Formato 501:HHMMHHMM Intervallo di tempo dalle 10:08 alle 01:01

Non è possibile, come ho descritto sopra, è ambiguo quali siano alcuni valori e potrebbero restituire più formati. Dovresti invece creare un'altra colonna e memorizzare il formato della data in quello in cui l'utente inserisce la data piuttosto che cercare di ricostruire il codice del formato da un numero (ambiguo).