Conocer las
funciones de fecha es muy útil al momento de hacer consultas SQL, ya sea para preparar un resumen por año, mes, semana, etc.
A continuación, las funciones más comunes.
·
Obtener
el día actual:
SELECT SYSDATE HOY FROM DUAL;
HOY
-----
15/01/2020 8:09:21
SELECT TRUNC(SYSDATE) HOY FROM DUAL;
HOY
-----
15/01/2020
SELECT TO_CHAR(SYSDATE,'DAY') HOY FROM DUAL;
HOY
-----
MIÉRCOLES
·
Obtener
la semana actual:
SELECT TO_CHAR(SYSDATE,'IW') SEM FROM DUAL;
SEM
-----
03
·
Obtener
el mes actual:
SELECT TO_CHAR(SYSDATE,'MM') MES FROM DUAL;
MES
-----
01
SELECT TO_CHAR(SYSDATE,'MONTH') MES FROM DUAL;
MES
-----
ENERO
·
Obtener
el primer día de la semana:
SELECT TRUNC(SYSDATE,'IW') SEMANA FROM DUAL;
SEMANA
-----
13/01/2020
·
Obtener
el primer día del mes:
SELECT TRUNC(SYSDATE,'MM') INICIO_MES FROM DUAL;
INICIO_MES
-----
01/01/2020
·
Obtener
el último día del mes:
SELECT LAST_DAY('05/01/2020') ULTIMO_DEL_MES FROM DUAL;
ULTIMO_DEL_MES
-----
31/01/2020
·
Obtener
el primer día del año:
SELECT TRUNC(SYSDATE,'Y') PRIMER_DIA_ANHO FROM DUAL;
PRIMER_DIA_ANHO
-----
01/01/2020
·
Como plus consulta para obtener rangos de fechas:
o
Obtener
todos los días del mes
SELECT (TRUNC(SYSDATE, 'MM')+LEVEL-1) DIAS
FROM DUAL
CONNECT BY (TRUNC(SYSDATE, 'MM')+LEVEL-1) <= LAST_DAY(SYSDATE);
DIAS
-----
01/01/2020
02/01/2020
03/01/2020
*****
31/01/2020
o
Obtener
todos los días de la semana
SELECT (TRUNC(SYSDATE, 'IW')+LEVEL-1) DIAS
FROM DUAL
CONNECT BY (TRUNC(SYSDATE, 'IW')+LEVEL-1) <= TRUNC(SYSDATE+8, 'IW')-1;
DIAS
-----
13/01/2020
14/01/2020
*****
19/01/2020
o
Obtener
todos los meses del año
SELECT ADD_MONTHS(TRUNC(SYSDATE, 'Y'), LEVEL - 1) MES
FROM DUAL
CONNECT BY ADD_MONTHS(TRUNC(SYSDATE, 'Y'), LEVEL - 1) <=
TRUNC(SYSDATE + 366, 'Y') - 1;
MES
-----
01/01/2020
01/02/2020
01/03/2020
*****
01/12/2020
SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'Y'), LEVEL - 1),'MONTH') MES
FROM DUAL
CONNECT BY ADD_MONTHS(TRUNC(SYSDATE, 'Y'), LEVEL - 1) <=
TRUNC(SYSDATE + 366, 'Y') - 1;
MES
-----
ENERO
FEBRERO
MARZO
*****
DICIEMBRE
Espero que este blog les ayude, saludos.
Comentarios
Publicar un comentario