Når du henter navnet på dagen og/eller måneden fra en dato i Oracle, vil du måske returnere det med store, små eller store bogstaver.
Heldigvis er dette nemt at gøre. Resultatet afspejler brugen af store bogstaver i din formatmodel.
Eksempel
Når du bruger TO_CHAR()
for at returnere datodele fra en datoværdi, bruger du et eller flere formatelementer til at producere en formatmodel. Denne formatmodel bestemmer, hvordan datoen formateres, når den returneres.
Vi kan bruge DAY
og MONTH
formatelementer for at returnere henholdsvis dagsnavn og månedsnavn.
Men det er vigtigt, at den store bogstaver, vi bruger til disse formatelementer, bestemmer brugen af store og små bogstaver i resultatet.
Eksempel:
SELECT
TO_CHAR( DATE '2037-12-03', 'month' ) AS "month",
TO_CHAR( DATE '2037-12-03', 'Month' ) AS "Month",
TO_CHAR( DATE '2037-12-03', 'MONTH' ) AS "MONTH"
FROM DUAL;
Resultat:
month Month MONTH ____________ ____________ ____________ december December DECEMBER
Det er det samme for DAY
formatelement:
SELECT
TO_CHAR( DATE '2037-12-03', 'day' ) AS "day",
TO_CHAR( DATE '2037-12-03', 'Day' ) AS "Day",
TO_CHAR( DATE '2037-12-03', 'DAY' ) AS "DAY"
FROM DUAL;
Resultat:
day Day DAY ____________ ____________ ____________ thursday Thursday THURSDAY
Det gælder også ved returnering af den forkortede version af dagen eller måneden.
Eksempel:
SELECT
TO_CHAR( DATE '2037-12-03', 'mon' ) AS "mon",
TO_CHAR( DATE '2037-12-03', 'Mon' ) AS "Mon",
TO_CHAR( DATE '2037-12-03', 'MON' ) AS "MON"
FROM DUAL;
Resultat:
mon Mon MON ______ ______ ______ dec Dec DEC
Og:
SELECT
TO_CHAR( DATE '2037-12-03', 'dy' ) AS "dy",
TO_CHAR( DATE '2037-12-03', 'Dy' ) AS "Dy",
TO_CHAR( DATE '2037-12-03', 'DY' ) AS "DY"
FROM DUAL;
Resultat:
dy Dy DY ______ ______ ______ thu Thu THU
Året
Måske en mindre kendt kendsgerning er, at Oracle Database også leverer formatelementer, der returnerer hele året præciseret. Nærmere bestemt YEAR
og SYEAR
(for at tage højde for eller før BC datoer).
Brugen af store bogstaver i disse formatelementer påvirker også outputtet:
SELECT
TO_CHAR( DATE '2037-12-03', 'year' ) AS "year",
TO_CHAR( DATE '2037-12-03', 'Year' ) AS "Year",
TO_CHAR( DATE '2037-12-03', 'YEAR' ) AS "YEAR"
FROM DUAL;
Resultat:
year Year YEAR ______________________ ______________________ ______________________ twenty thirty-seven Twenty Thirty-Seven TWENTY THIRTY-SEVEN
Og:
SELECT
TO_CHAR( DATE '-2037-12-03', 'syear' ) AS "syear",
TO_CHAR( DATE '-2037-12-03', 'Syear' ) AS "Syear",
TO_CHAR( DATE '-2037-12-03', 'SYEAR' ) AS "SYEAR"
FROM DUAL;
Resultat:
syear Syear SYEAR _______________________ _______________________ _______________________ -twenty thirty-seven -Twenty Thirty-Seven -TWENTY THIRTY-SEVEN
Ved anvendelse af store og små bogstaver med Syear
formatelement, skal vi huske, at kun det første tegn – S
tegn – er med store bogstaver, og alle resterende tegn er små bogstaver (inklusive Y
tegn):