Los formatos de función de fecha y hora son diferentes en varias bases de datos. vamos a discutir las funciones más comunes utilizadas en la base de datos Oracle.
La función SYSDATE devuelve 7 bytes de datos, que incluye:
- Siglo
- Año
- Mes
- Día
- Hora
- Minuto
- Segundo
1. Extraer():
Oracle lo ayuda a extraer el año, el mes y el día de una fecha utilizando la función Extraer().
- Ejemplo-1: Año de extracción:
SELECT
SYSDATE
AS
CURRENT_DATE_TIME, EXTRACT(
Year
FROM
SYSDATE)
AS
ONLY_CURRENT_YEAR
FROM
Dual
Producción:
FECHA_ACTUAL_HORA SOLO_AÑO_ACTUAL 05.feb.2019 07:29:24 2019 Explicación:
Útil para recuperar solo el año de la fecha del sistema/fecha actual o fecha específica específica. - Ejemplo-2: Mes de extracción:
SELECT
SYSDATE
AS
CURRENT_DATE_TIME, EXTRACT(
Month
FROM
SYSDATE)
AS
ONLY_CURRENT_MONTH
FROM
Dual
Producción:
FECHA_ACTUAL_HORA SOLO_CURRENT_MES 05.feb.2019 07:29:24 Feb Explicación:
útil para recuperar solo el mes de la fecha del sistema/fecha actual o una fecha específica específica. - Ejemplo-3: Día de extracción:
SELECT
SYSDATE
AS
CURRENT_DATE_TIME, EXTRACT(
Day
FROM
SYSDATE)
AS
ONLY_CURRENT_DAY
FROM
Dual
Producción:
FECHA_ACTUAL_HORA SOLO_CURRENT_DAY 05.feb.2019 07:29:24 5 Explicación:
útil para recuperar solo el día de la fecha del sistema/fecha actual o fecha específica específica.
2. ADD_MONTHS (fecha, n):
con este método en PL/SQL, puede sumar y restar el número de meses (n) a una fecha. Aquí ‘n’ puede ser tanto negativo como positivo.
- Ejemplo-4:
SELECT
ADD_MONTHS(SYSDATE, -1)
AS
PREV_MONTH, SYSDATE
AS
CURRENT_DATE
,
ADD_MONTHS(SYSDATE, 1)
as
NEXT_MONTH
FROM
Dual
Producción:
PREV_MES FECHA ACTUAL PRÓXIMO MES 02.ene.2019 09:15:46 02.feb.2019 09:15:46 02.mar.2019 09:15:46 Explicación:
la función ADD_MONTHS tiene dos parámetros, uno es la fecha, donde podría ser cualquier fecha específica/particular o fecha del sistema como fecha actual y el segundo es ‘n’, es un valor entero que puede ser positivo o negativo para obtener la próxima fecha o la fecha anterior .
3. LAST_DAY (fecha):
con este método en PL/SQL puede obtener el último día del mes de la fecha especificada.
- Ejemplo-5:
SELECT
SYSDATE
AS
CURRENT_DATE
, LAST_DAY(SYSDATE)
AS
LAST_DAY_OF_MONTH,
LAST_DAY(SYSDATE)+1
AS
FIRST_DAY_OF_NEXT_MONTH
FROM
Dual
Producción:
FECHA ACTUAL LAST_DAY_OF_MES PRIMER_DÍA_DE_PRÓXIMO_MES 02.feb.2019 09:32:00 28.feb.2019 09:32:00 01.Mar.2019 09:32:00 Explicación:
En el ejemplo anterior, estamos obteniendo la fecha actual usando la función SYSDATE y la última fecha del mes se recuperaría usando la función LAST_DAY y esta función también será útil para recuperar el primer día del próximo mes. - Ejemplo-6: Número de días restantes en el mes
SELECT
SYSDATE
AS
CURRENT_DATE
, LAST_DAY(SYSDATE) - SYSDATE
AS
DAYS_LEFT_IN_MONTH
FROM
Dual
Producción:
FECHA ACTUAL DAYS_LEFT_IN_MONTH 02.feb.2019 09:32:00 26
4. MESES_ENTRE (fecha1, fecha2):
Usando este método en PL/SQL puede calcular el número de meses entre dos fechas ingresadas fecha1 y fecha2. si la fecha 1 es posterior a la fecha 2, el resultado sería positivo y si la fecha 1 es anterior a la fecha 2, el resultado sería negativo.
Nota:
Si se calcula un mes fraccionario, la función MONTHS_BETWEEN calcula la fracción en función de un mes de 31 días.
- Ejemplo-7:
SELECT
MONTHS_BETWEEN (TO_DATE (
'01-07-2003'
,
'dd-mm-yyyy'
),
TO_DATE (
'14-03-2003'
,
'dd-mm-yyyy'
))
AS
NUMBER_OF_MONTHS
FROM
Dual
Producción:
NÚMERO DE MESES 3.58 Explicación:
aquí la fecha 1 y la fecha 2 no están en el mismo día del mes, por eso estamos obteniendo el valor en fracciones, así como la fecha 1 es posterior a la fecha 2, por lo que el valor resultante está en números enteros.
La fecha ingresada debe estar en un formato de fecha particular, esa es la razón de usar la función TO_DATE mientras se compara dentro de la función MONTHS_BETWEEN.Seleccionemos el número de meses que un empleado ha trabajado para la empresa.
- Ejemplo-8:
SELECT
MONTHS_BETWEEN (SYSDATE, DATE_OF_HIRE)
AS
NUMBER_OF_MONTHS
FROM
Employees
Aporte:
FECHA DEL SISTEMA FECHA DE CONTRATACIÓN 02-02-2019 31-10-2017 02-02-2019 03-12-2017 02-02-2019 24-09-2018 02-02-2019 22-12-2016 02-02-2019 18-06-2018 Producción:
NÚMERO DE MESES 15.064 13.967 4.290 25.354 7.483
5. NEXT_DAY(fecha, día_de_la_semana):
Devolverá la próxima fecha del primer día de la semana que sea posterior a la fecha ingresada. Tiene dos parámetros, la primera fecha donde se puede ingresar la fecha del sistema o la fecha especificada; segundo día de la semana que debe estar en forma de carácter.
- Ejemplo-9:
SELECT
NEXT_DAY(SYSDATE,
'SUNDAY'
)
AS
NEXT_SUNDAY
FROM
Dual
Producción:
EL DOMINGO PRÓXIMO 17-FEB-2019 Explicación:
ayudará a proporcionar la próxima fecha próxima correspondiente al día, el tipo de devolución siempre es FECHA independientemente de la fecha del tipo de datos. El segundo parámetro debe ser un día de la semana ya sea nombre completo o abreviado.
Publicación traducida automáticamente
Artículo escrito por ShubhamMaurya3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA