Der er ikke rigtig et standarddatoformat for produktet, referencevejledning
angiver, at standarden for NLS_DATE_FORMAT
på systemniveau er baseret på NLS_TERRITORY
. Selvom dette
siger, at 'standarden' er 'DD-MON-RR', og jeg tror, det er, hvad du får, hvis du ikke angiver en værdi på databaseniveau, i hvert fald på de platforme, jeg har arbejdet på.
Når du opretter en ny database, kan initialiseringsparametrene omfatte en specifik NLS_DATE_FORMAT
, og det kan også ændres senere.
Men systemniveauet NLS_DATE_FORMAT
kan tilsidesættes af klienten, sessionen eller i en TO_CHAR
opkald. Du kan se i v$nls_parameters
for at se systemværdien og nls_session_parameters
for at se din aktuelle sessionsværdi. Du kan ændre det med alter session
hvis du vil.
Jeg er ret sikker på, at du vil opdage, at PL/SQL-udvikler indstiller sessionen NLS_DATE_FORMAT
til MM/DD/YYYY
et sted i dens præferencer.
Generelt er det bedre slet ikke at stole på den værdi og altid bruge en eksplicit formatmaske til visning, f.eks. TO_CHAR(<column>, 'YYYY-MM-DD HH24:MI:SS')
.
Der er mere på NLS_DATE_FORMAT
i globaliseringsvejledningen her
og her
; og lidt om datovisning her
; og en oversigt over datoformatmodelelementerne her