Exemplos de como obter datas e cálculos para datas

Há muito tempo tenho esse script que sempre me ajudou a calcular horas, minutos e dias.
Utilizando algumas funções do Oracle para ajudar a montar datas decorrente do dia de hoje.


SELECT SYSDATE DATA_ATUAL,
ADD_MONTHS(SYSDATE,-1) MENOS_UM_MES,
ADD_MONTHS(SYSDATE,1) MAIS_UM_MES,
LAST_DAY(SYSDATE) ULTIMO_DIA_MES,
TRUNC(SYSDATE,'MONTH') PRIMEIRO_DIA_MES,
MONTHS_BETWEEN(SYSDATE,'01-JAN-2001') QTD_MES,
FLOOR(MONTHS_BETWEEN(SYSDATE,'01-JAN-2001')) ARREDONDA_ABAIXO,
CEIL(MONTHS_BETWEEN(SYSDATE,'01-JAN-2001')) ARREDONDA_ACIMA,
ABS(MONTHS_BETWEEN(SYSDATE,'01-JAN-2001')) VALOR_ABSOLUTO,
ROUND((MONTHS_BETWEEN(SYSDATE,'01-JAN-2001')),2) ARREDONDA,
TRUNC(SYSDATE,'year') PRIMEIRO_DIA_ANO,
to_char(SYSDATE,'dd " DE " FMMONTH " DE " YYYY','nls_date_language=portuguese') DIAMES_EXTENSO,
to_char(SYSDATE,'FMMONTH " DE " YYYY','nls_date_language=portuguese') MES_EXTENSO,
TO_CHAR(SYSDATE,'HH24:MI') HORA_MINUTO,
to_char(sysdate,'FMMonth','nls_date_language=portuguese') mes_corrente,
to_date(lpad(to_char(1234),4,'0'),'hh24mi') dias_data,
Floor(floor(months_between(SYSDATE,SYSDATE)) / 12) IDADE,
decode(TO_NUMBER(TO_CHAR(SYSDATE,'D')),2,'segunda-feira',3,'terça-feira',4,'quarta-feira',
5,'quinta-feira',6,'sexta-feira',7,'sabado',1,'domingo') dia_da_semana
FROM DUAL

Resultado

DATA_ATUAL	        08/09/11 22:15:10
MENOS_UM_MES	        08/08/11 22:15:10
MAIS_UM_MES	        08/10/11 22:15:10
ULTIMO_DIA_MES	        30/09/11 22:15:10
PRIMEIRO_DIA_MES	01/09/11
QTD_MES	                128,255716099164
ARREDONDA_ABAIXO	128
ARREDONDA_ACIMA	        129
VALOR_ABSOLUTO	        128,255716099164
ARREDONDA	        128,26
PRIMEIRO_DIA_ANO	01/01/11
DIAMES_EXTENSO	        08  DE  SETEMBRO  DE  2011
MES_EXTENSO	        SETEMBRO  DE  2011
HORA_MINUTO	        22:15
MES_CORRENTE	        Setembro
DIAS_DATA	        01/09/11 12:34:00
IDADE	                0
DIA_DA_SEMANA	        quinta-feira
%name Exemplos de como obter datas e cálculos para datas

Autor: Rafael Stoever

Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).