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

2 funciones para obtener el año de una fecha en Oracle

A continuación se muestran dos funciones que se pueden utilizar para extraer el año de una fecha en Oracle Database.

El EXTRACT() Función

Puede usar el EXTRACT(datetime) Función para extraer varias partes de fecha y hora de un valor de fecha y hora. Esto incluye el año.

He aquí un ejemplo:

SELECT EXTRACT(YEAR FROM DATE '2030-12-25')
FROM DUAL;

Resultado:

2030

Es el YEAR palabra clave que extrae la parte del año de la fecha. Podemos obtener otras partes de la fecha cambiándola a la palabra clave relevante. Por ejemplo, MONTH , DAY , HOUR , MINUTE , etc.

También podemos usar la función con otros valores de fecha y hora, como TIMESTAMP , etc.

La función también se puede utilizar para devolver el año de un intervalo. Ver EXTRACT(datetime) Función en Oracle para un ejemplo.

El TO_CHAR(datetime) Función

También podemos usar el TO_CHAR(datetime) funcionan como un método alternativo para obtener el año a partir de una fecha.

Esta función acepta la fecha y hora o valor de intervalo como primer argumento y un modelo de formato como segundo argumento. La función luego convierte el valor a un tipo de datos de VARCHAR2 en el formato especificado.

El modelo de formato especifica el formato para el que devolver el valor de fechahora/intervalo. El modelo de formato consta de uno o más elementos de formato . Esto nos permite diseñar cuidadosamente los resultados para reflejar nuestro formato deseado.

Si solo queremos devolver el año, podemos usar el YYYY elemento de formato:

SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')
FROM DUAL;

Resultado:

2,027

También podemos utilizar alternativas para el modelo de formato. Por ejemplo, podemos usar YY para especificar un año de dos dígitos:

SELECT TO_CHAR(DATE '2027-10-03', 'YY')
FROM DUAL;

Resultado:

27

De hecho, podemos tener entre uno y cuatro Y caracteres, dependiendo de nuestros requisitos:

SELECT 
    TO_CHAR(DATE '2027-10-03', 'Y') AS Y,
    TO_CHAR(DATE '2027-10-03', 'YY') AS YY,
    TO_CHAR(DATE '2027-10-03', 'YYY') AS YYY,
    TO_CHAR(DATE '2027-10-03', 'YYYY') AS YYYY
FROM DUAL;

Resultado:

   Y    YY    YYY    YYYY 
____ _____ ______ _______ 
7    27    027    2027   

Incluir una coma

Podemos usar el Y,YYY elemento de formato si queremos incluir una coma en la salida:

SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')
FROM DUAL;

Resultado:

2,027

Deletrear el año

Incluso podemos usar el YEAR elemento de formato para devolver el año escrito:

SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')
FROM DUAL;

Resultado:

TWENTY TWENTY-SEVEN

Fechas antes de Cristo

También podemos atender a las fechas de BC anteponiendo nuestro elemento de formato de año con un S . Al hacer esto, antepone el resultado con un signo menos, según corresponda:

SELECT 
    TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY,
    TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEAR
FROM DUAL;

Resultado:

   SYYYY         SYEAR 
________ _____________ 
-0250    -TWO FIFTY   

Alternativamente podemos utilizar el BC o B.C. elementos de formato para atender las fechas BC:

SELECT 
    TO_CHAR(DATE '-250-10-03', 'YYYY BC') AS YYYY,
    TO_CHAR(DATE '-250-10-03', 'YEAR BC') AS YEAR,
    TO_CHAR(DATE '250-10-03', 'YYYY BC') AS YYYY,
    TO_CHAR(DATE '250-10-03', 'YEAR BC') AS YEAR
FROM DUAL;

Resultado:

      YYYY            YEAR       YYYY            YEAR 
__________ _______________ __________ _______________ 
0250 BC    TWO FIFTY BC    0250 AD    TWO FIFTY AD