MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

4 funções para retornar o ano de uma data no MariaDB


Abaixo estão 4 funções que permitem retornar o ano de uma data no MariaDB. Três funções retornam apenas o ano e uma retorna o ano e a semana.

O YEAR() Função


O YEAR() função retorna o ano para uma determinada data. O resultado está no intervalo 1000 para 9999 , ou 0 para datas com ano zero (como 0000-00-00 ).

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

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

O EXTRACT() Função


O EXTRACT () A função permite extrair uma unidade especificada da data. Portanto, você pode usá-lo para extrair o ano (assim como outras unidades) da data.

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

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

O DATE_FORMAT() Função


O DATE_FORMAT() A função permite que você formate uma data com base em uma string de formato. A string de formato especifica como a data deve ser formatada.

Portanto, você pode usar esta função para retornar o ano (assim como qualquer outra unidade) a partir da data. Existem diferentes especificadores de formato para retornar o ano em diferentes formatos. Por exemplo, um ano de quatro dígitos, ano de dois dígitos, etc.

Aqui está um exemplo que retorna o ano de várias 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 retornaram um número de ano diferente dos outros.

Aqui está uma descrição de cada um desses especificadores de formato, que explica por que %x retornou um resultado diferente:
Especificador de formato Descrição
%X Ano com 4 dígitos quando o primeiro dia da semana é domingo. Usado com %V .
%x Ano com 4 dígitos quando o primeiro dia da semana é segunda-feira. Usado com %v .
%Y Ano com 4 dígitos.
%y Ano com 2 dígitos.

E aqui está uma descrição de %V e %v conforme indicado na tabela acima:
Especificador de formato Descrição
%V Número da semana (01-53), quando o primeiro dia da semana é domingo. Usado com %X .
%v Número da semana (01-53), quando o primeiro dia da semana é segunda-feira. Usado com %x .

Assim, poderíamos adicionar esses especificadores de formato ao exemplo acima e obter o seguinte:
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 |
+----------+----------+

Observe que %x nem sempre retornará um ano diferente – depende da data real que está sendo usada. Às vezes é %X que retorna um ano diferente dos demais.

Vamos adiantar a data um ano:
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   |
+------+------+------+------+

Desta vez é %X esse é o estranho. Conforme explicado na tabela acima, depende se o primeiro dia da semana é domingo ou segunda-feira.

Obviamente, se avançarmos no ano, todos os especificadores de formato retornarão o mesmo ano:
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 Strings de formato MariaDB para obter uma lista completa de strings/especificadores de formato.

A YEARWEEK() Função


O YEARWEEK() A função retorna o ano e a semana de uma determinada data.

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

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

O ano no resultado pode ser diferente do ano no argumento de data para a primeira e a última semana do ano.

Aqui está o que acontece se avançarmos um ano:
SELECT YEARWEEK('2024-01-01');

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

O YEARWEEK() A função aceita um segundo argumento opcional para especificar o modo. O resultado real que você obtém dessa função dependerá do modo que está sendo usado. Se o argumento mode for omitido, o valor do default_week_format variável de sistema é usada.

Veja como YEARWEEK() Funciona no MariaDB para saber mais sobre os modos e exemplos de cada um.