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

skift datoformat 'åååå/mm/dd' til 'mm-dd-åååå' i Oracle

to_date() tager din strengparameter, matcher den med det format, du angiver i den anden parameter, og konstruerer et datofelt ud fra den. Datofeltet bruger ikke det format, du angav i den anden parameter - faktisk vil det blive gemt ved hjælp af en intern datarepræsentation, der slet ikke har noget format (et tal, efter al sandsynlighed).

For at præsentere et format tilbage i resultaterne fra et datofelt, kan du enten:

  1. Lad klienten, der udfører forespørgslen, indstille NLS-parametrene (på sessionsniveau) til at give et lokaliseret format med en ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD'; erklæring), eller
  2. Brug to_char(..., 'YYYY-MM-DD') rundt om dit eksisterende felt for at vende datoen tilbage til en streng, der er formateret som du vil have den. Hvor du erstatter ... med din aktuelle kolonnedefinition i vælg.

Tilgang nr. 1 sker allerede, da der allerede vil være et NLS_DATE_FORMAT-sæt, der producerer det aktuelle format, men det er med et format, du ikke ønsker, så hvis du kan kontrollere det og ændre det der, kan du gøre det vej. Hvis du ikke kan, og du skal have formatet en enkelt konsistent anden vej, så kunne #2 være vejen at gå.



  1. Sådan sender du en streng som en WHERE-sætning i MYSQL

  2. Brug af Prepared Statement i C# med Mysql

  3. Indsættelse af dato fra java til Oracle DB

  4. Vil du erstatte værdi inden for en kommasepareret streng i MySQL?