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

Jak napsat kód v Oracle SQL (jako 'CCYYMMDD' do 102)

Nemůžete napsat funkci, která určí, který číselný řetězec data odpovídá kterému formátu, protože řetězec data může mít více formátů:

Například 010203 může být:

  • Formát 2:DDMMYY 1. února 03
  • Formát 3:MMDDYY 2. ledna 03
  • Formát 101:YYMMDD 3. února 01
  • Formát 306:DDHHMM 02:03 dne 1
  • Formát 402:HHMMSS 01:02:03
  • Formát 405:MMMMSS 102 minut 3 sekund
  • Formát 610:CCYYMM března 0102
  • Formát 616:CCYYWW 3. týden roku 0102

Podobně 10080102 může být:

  • Formát 4:DDMMCCYY 10. srpna 102
  • Formát 102:CCYYMMDD 2. ledna 1008
  • Formát 305:MMDDHHMM 8. října 01:02
  • Formát 501:HHMMHHMM Časové rozpětí od 10:08 do 01:01

Nemůžete, jak jsem popsal výše, je nejednoznačné, jaké jsou některé hodnoty, a mohly by vrátit více formátů. Místo toho byste měli vytvořit další sloupec a uložit formát data v tom, kdy uživatel zadá datum, spíše než se snažit rekonstruovat kód formátu z (nejednoznačného) čísla.



  1. Efektivní způsob zobrazení názvu skupiny jednou — PHP/MySQL/jQuery

  2. Získejte hodnotu Autoincrement po dotazu INSERT v MySQL

  3. získat po sobě jdoucí záznamy v mysql

  4. Oracle self join počínaje minimální hodnotou (rok měsíce) pro každý oddíl