sql >> Database >  >> RDS >> Oracle

Hoe de code in Oracle SQL te schrijven (zoals 'CCYYMMDD' in 102)

U kunt geen functie schrijven om te bepalen welke numerieke datumreeks overeenkomt met welk formaat, aangezien de datumreeks meerdere notaties kan hebben:

Bijvoorbeeld 010203 zou kunnen zijn:

  • Formaat 2:DDMMYY 1 februari 03
  • Formaat 3:MMDDYY 2 januari 03
  • Formaat 101:YYMMDD 3 februari 01
  • Formaat 306:DDHHMM 02:03 van dag 1
  • Formaat 402:HHMMSS 01:02:03
  • Formaat 405:MMMMSS 102 minuten 3 seconden
  • Formaat 610:CCYYMM maart 0102
  • Formaat 616:CCYYWW Week 3 van 0102

Evenzo 10080102 zou kunnen zijn:

  • Formaat 4:DDMMCCYY 10 augustus 102
  • Formaat 102:CCYYMMDD 2 januari 1008
  • Formaat 305:MMDDHHMM 8 oktober 01:02
  • Formaat 501:HHMMHHMM Tijdspanne van 10:08 tot 01:01

Dat kan niet, zoals ik hierboven heb beschreven, het is dubbelzinnig wat sommige waarden zijn en ze kunnen meerdere formaten retourneren. In plaats daarvan moet u een andere kolom maken en het datumformaat daarin opslaan wanneer de gebruiker de datum invoert, in plaats van te proberen de formaatcode te reconstrueren uit een (dubbelzinnig) getal.



  1. Hoe mysql-gegevens in bulk bijwerken met één query?

  2. Mogelijke uitleg over WITH RECURSIEVE Query Postgres

  3. Slaapstand geparametriseerde sql-query langzame en actieve Oracle-sessies

  4. Mysql waar id in array staat