sql >> Database >  >> RDS >> Oracle

verander het datumformaat 'jjjj/mm/dd' in 'mm-dd-jjjj' in Oracle

to_date() neemt uw stringparameter, stemt deze af op het formaat dat u opgeeft in de tweede parameter, en construeert er een datumveld van. Het datumveld gebruikt niet het formaat dat u in de tweede parameter hebt opgegeven - in feite wordt het opgeslagen met een interne gegevensrepresentatie die helemaal geen formaat heeft (een getal, naar alle waarschijnlijkheid).

Om een ​​opmaak weer te geven in de resultaten van een datumveld, kunt u:

  1. Laat de client die de query uitvoert de NLS-parameters instellen (op sessieniveau) om een ​​gelokaliseerd formaat te bieden, met een ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD'; verklaring), of
  2. Gebruik to_char(..., 'YYYY-MM-DD') rond uw bestaande veld om de datum weer om te zetten in een tekenreeks die is opgemaakt zoals u hem wilt hebben. Waar vervangt u ... met uw huidige kolomdefinitie in de selectie.

Benadering # 1 is al aan de gang, omdat er al een NLS_DATE_FORMAT-set is die het huidige formaat produceert, maar het is met een formaat dat je niet wilt, dus als je het kunt controleren en het daar kunt wijzigen, kun je dat doen manier. Als je dat niet kunt en je moet het formaat op een andere manier consistent hebben, dan zou #2 de juiste keuze kunnen zijn.



  1. mysql Meerdere buitenlandse sleutels in een tabel naar dezelfde primaire sleutel

  2. Oracle ongeldig nummer veroorzaakt door de functie to_char

  3. hoe een dubbel e-mailadres weer te geven?

  4. Solve kan geen DML-bewerking binnen een query uitvoeren