sql >> Base de Datos >  >> RDS >> MariaDB

4 funciones para devolver el año a partir de una fecha en MariaDB

A continuación se muestran 4 funciones que le permiten devolver el año a partir de una fecha en MariaDB. Tres funciones devuelven solo el año y una devuelve tanto el año como la semana.

El YEAR() Función

El YEAR() función devuelve el año para una fecha determinada. El resultado está en el rango 1000 a 9999 , o 0 para fechas que tienen un año cero (como 0000-00-00 ).

Ejemplo:

SELECT YEAR('2023-07-25');

Resultado:

+--------------------+
| YEAR('2023-07-25') |
+--------------------+
|               2023 |
+--------------------+

El EXTRACT() Función

El EXTRACT () La función le permite extraer una unidad específica de la fecha. Por lo tanto, puede usarlo para extraer el año (así como otras unidades) de la fecha.

Ejemplo:

SELECT EXTRACT(YEAR FROM '2023-07-25');

Resultado:

+---------------------------------+
| EXTRACT(YEAR FROM '2023-07-25') |
+---------------------------------+
|                            2023 |
+---------------------------------+

El DATE_FORMAT() Función

El DATE_FORMAT() La función le permite formatear una fecha en función de una cadena de formato. La cadena de formato especifica cómo debe formatearse la fecha.

Por lo tanto, puede utilizar esta función para devolver el año (así como cualquier otra unidad) a partir de la fecha. Hay diferentes especificadores de formato para devolver el año en diferentes formatos. Por ejemplo, un año de cuatro dígitos, un año de dos dígitos, etc.

Aquí hay un ejemplo que devuelve el año en varias formas:

SELECT 
    DATE_FORMAT('2023-01-01', '%X') AS "%X",
    DATE_FORMAT('2023-01-01', '%x') AS "%x",
    DATE_FORMAT('2023-01-01', '%Y') AS "%Y",
    DATE_FORMAT('2023-01-01', '%y') AS "%y";

Resultado:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2023 | 2022 | 2023 | 23   |
+------+------+------+------+

Observe que %x devolvió un número de año diferente a los demás.

Aquí hay una descripción de cada uno de esos especificadores de formato, lo que explica por qué %x devolvió un resultado diferente:

Especificador de formato Descripción
%X Año con 4 dígitos cuando el primer día de la semana es domingo. Usado con %V .
%x Año con 4 dígitos cuando el primer día de la semana es lunes. Usado con %v .
%Y Año con 4 dígitos.
%y Año con 2 dígitos.

Y aquí hay una descripción de %V y %v como se menciona en la tabla anterior:

Especificador de formato Descripción
%V Número de semana (01-53), cuando el primer día de la semana es domingo. Usado con %X .
%v Número de semana (01-53), cuando el primer día de la semana es lunes. Usado con %x .

Así que podríamos agregar esos especificadores de formato al ejemplo anterior y obtener lo siguiente:

SELECT 
    DATE_FORMAT('2023-01-01', '%X, %V') AS "%X, %V",
    DATE_FORMAT('2023-01-01', '%x, %v') AS "%x, %v";

Resultado:

+----------+----------+
| %X, %V   | %x, %v   |
+----------+----------+
| 2023, 01 | 2022, 52 |
+----------+----------+

Tenga en cuenta que %x no siempre devolverá un año diferente, depende de la fecha real que se use. A veces es %X que vuelve un año diferente a los demás.

Avancemos la fecha un año:

SELECT 
    DATE_FORMAT('2024-01-01', '%X') AS "%X",
    DATE_FORMAT('2024-01-01', '%x') AS "%x",
    DATE_FORMAT('2024-01-01', '%Y') AS "%Y",
    DATE_FORMAT('2024-01-01', '%y') AS "%y";

Resultado:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2023 | 2024 | 2024 | 24   |
+------+------+------+------+

Esta vez es %X ese es el extraño. Como se explica en la tabla anterior, depende de si el primer día de la semana es domingo o lunes.

Por supuesto, si avanzamos más en el año, todos los especificadores de formato regresan al mismo año:

SELECT 
    DATE_FORMAT('2024-12-12', '%X') AS "%X",
    DATE_FORMAT('2024-12-12', '%x') AS "%x",
    DATE_FORMAT('2024-12-12', '%Y') AS "%Y",
    DATE_FORMAT('2024-12-12', '%y') AS "%y";

Resultado:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2024 | 2024 | 2024 | 24   |
+------+------+------+------+

Consulte Cadenas de formato de MariaDB para obtener una lista completa de cadenas/especificadores de formato.

El YEARWEEK() Función

El YEARWEEK() función devuelve el año y la semana para una fecha determinada.

Ejemplo:

SELECT YEARWEEK('2023-01-01');

Resultado:

+------------------------+
| YEARWEEK('2023-01-01') |
+------------------------+
|                 202301 |
+------------------------+

El año en el resultado puede ser diferente del año en el argumento de fecha para la primera y la última semana del año.

Esto es lo que sucede si avanzamos un año:

SELECT YEARWEEK('2024-01-01');

Resultado:

+------------------------+
| YEARWEEK('2024-01-01') |
+------------------------+
|                 202353 |
+------------------------+

El YEARWEEK() La función acepta un segundo argumento opcional para especificar el modo. El resultado real que obtenga de esta función dependerá del modo que se utilice. Si se omite el argumento de modo, el valor de default_week_format se utiliza la variable del sistema.

Vea cómo YEARWEEK() Funciona en MariaDB para obtener más información sobre los modos y ejemplos de cada uno.