Ao obter o nome do dia e/ou mês de uma data no Oracle, convém devolvê-lo em maiúsculas, minúsculas ou maiúsculas.
Felizmente, isso é fácil de fazer. O resultado reflete a capitalização do seu modelo de formato.
Exemplo
Ao usar
TO_CHAR()
para retornar partes de data de um valor de data, use um ou mais elementos de formato para produzir um modelo de formato. Este modelo de formato determina como a data é formatada quando é retornada. Podemos usar o
DAY
e MONTH
elementos de formato para retornar o nome do dia e o nome do mês, respectivamente. Mas o mais importante é que a capitalização que usamos para esses elementos de formato determina a capitalização do resultado.
Exemplo:
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;
Resultado:
month Month MONTH ____________ ____________ ____________ december December DECEMBER
É o mesmo para o
DAY
elemento de formato: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;
Resultado:
day Day DAY ____________ ____________ ____________ thursday Thursday THURSDAY
Também se aplica ao retornar a versão abreviada do dia ou mês.
Exemplo:
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;
Resultado:
mon Mon MON ______ ______ ______ dec Dec DEC
E:
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;
Resultado:
dy Dy DY ______ ______ ______ thu Thu THU
O ano
Talvez um fato menos conhecido é que o Oracle Database também fornece elementos de formato que retornam o ano completo. Especificamente,
YEAR
e YEAR
(para atender ou datas pré BC). A capitalização desses elementos de formato também afeta a saída:
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;
Resultado:
year Year YEAR ______________________ ______________________ ______________________ twenty thirty-seven Twenty Thirty-Seven TWENTY THIRTY-SEVEN
E:
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;
Resultado:
syear Syear SYEAR _______________________ _______________________ _______________________ -twenty thirty-seven -Twenty Thirty-Seven -TWENTY THIRTY-SEVEN
Ao aplicar maiúsculas e minúsculas com o
Syear
elemento de formato, precisamos lembrar que apenas o primeiro caractere - o S
caractere – está em letras maiúsculas e todos os caracteres restantes são em letras minúsculas (incluindo o Y
personagem):