sql >> Base de Datos >  >> RDS >> Oracle

Cómo obtener la fecha actual en Oracle

Problema:

Desea obtener la fecha actual (sin la hora) en Oracle.

Solución 1 (si no te importan los ceros como la hora):

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Por ejemplo, si ejecutara esta consulta el 16 de junio de 2021, la tabla de resultados se vería así:

fecha_actual
2021-06-16T00:00:00Z

Discusión:

Oracle no tiene un tipo de datos que almacene solo la fecha sin la hora. Pero si no le importan los ceros en lugar de la hora, simplemente puede almacenar una fecha en un DATE tipo de datos (que almacena tanto la fecha como la hora en Oracle). Para obtener la fecha y hora actuales como DATE valor, simplemente puede usar CURRENT_DATE . Para deshacerse de la hora (y tener ceros en su lugar), debe truncar la fecha:

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Solución 2 (si desea solo la fecha y no ceros en lugar de la hora):

SELECT
  TO_CHAR(CURRENT_DATE, 'yyyy-MM-dd') AS current_date
FROM dual;

Por ejemplo, si ejecutara esta consulta el 16 de junio de 2021, la tabla de resultados se vería así:

fecha_actual
2021-06-16

Discusión:

Para obtener un texto de VARCHAR2 tipo que almacena una fecha, puede usar el TO_CHAR() función en Oracle. Debe especificar la marca de fecha/hora que se convertirá como primer argumento y en el formato en el que desea almacenar la fecha como segundo argumento.

Como desea la fecha actual, el primer argumento es CURRENT_DATE . El segundo argumento es su elección. Por ejemplo, 'yyyy-MM-dd' significa 'año-mes-día', donde el mes es numérico en lugar de texto. La siguiente tabla presenta algunos formatos de fecha de ejemplo y la salida respectiva para la fecha 16 de junio de 2021.

formato de fecha resultado
'AAAA-MM-DD' 2021-06-16
'AAAA/MM/DD' 2021/06/16
'AAAA MM DD' 2021 06 16
'DD-LUN-AAAA' 16-JUN-2021
'DD-LUN-AA' 16-JUN-21
'FMMonth DD, AAAA' 16 de junio de 2021

Puede leer más sobre los formatos de fecha aquí.