MariaDB inclui muitas funções para trabalhar com datas. Alguns deles extraem certas partes de tais datas e as retornam como uma string ou inteiro.
Abaixo estão 11 funções que você pode usar para retornar várias partes de data no MariaDB.
As funções
Primeiro vamos as funções:
DATE_FORMAT()
EXTRACT()
DAYNAME()
- DAYOFMONTH()
DAY()
DAYOFWEEK()
WEEKDAY()
DAYOFYEAR()
MONTH()
MONTHNAME()
YEAR()
Abaixo estão exemplos de cada função.
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. Você constrói sua própria string de formato com base em um ou mais especificadores de formato. Aqui está um exemplo de uso de
DATE_FORMAT()
para retornar o dia, mês e ano de uma data:SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');
Resultado:
+-------------------------------------------+ | DATE_FORMAT('2023-07-25', '%W, %D %M %Y') | +-------------------------------------------+ | Tuesday, 25th July 2023 | +-------------------------------------------+
O bom dessa função é que você pode retornar muitas variações da data. Por exemplo, você pode retornar apenas os nomes curtos de dia e mês:
SELECT DATE_FORMAT('2023-07-25', '%a, %D %b %Y');
Resultado:
+-------------------------------------------+ | DATE_FORMAT('2023-07-25', '%a, %D %b %Y') | +-------------------------------------------+ | Tue, 25th Jul 2023 | +-------------------------------------------+
Ou você pode retornar os números do mês do dia:
SELECT DATE_FORMAT('2023-07-25', '%d/%c/%Y');
Resultado:
+---------------------------------------+ | DATE_FORMAT('2023-07-25', '%d/%c/%Y') | +---------------------------------------+ | 25/7/2023 | +---------------------------------------+
Veja esta lista completa de especificadores de formato para um resumo completo dos especificadores de formato que você pode usar para construir uma string de formato.
DATE_FORMAT()
também aceita um argumento de localidade opcional que você pode usar para especificar o idioma dos nomes de dia e mês. É uma função bastante flexível. Veja DATE_FORMAT()
para mais exemplos. O EXTRACT()
Função
O
EXTRACT
()
A função permite extrair uma unidade especificada da data. Assim, você pode usá-lo para extrair o dia, mês e ano (assim como outras unidades) da data. Exemplo:
SELECT
EXTRACT(DAY FROM '2023-07-25') AS Day,
EXTRACT(MONTH FROM '2023-07-25') AS Month,
EXTRACT(YEAR FROM '2023-07-25') AS Year;
Resultado:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 25 | 7 | 2023 | +------+-------+------+
Funções para retornar uma unidade de data específica
O MariaDB também possui várias funções mais específicas que retornam uma unidade de data específica.
Abaixo está uma lista das funções que retornam o dia, mês e ano de uma data.
O DAYNAME()
Função
Existem algumas funções para retornar o dia no MariaDB (e na maioria dos outros DBMSs). Isso ocorre porque o MariaDB precisa saber se você deseja o nome do dia, o número do dia da semana, o dia do mês, o dia do ano etc.
O
DAYNAME()
função retorna o nome do dia da semana. Exemplo:
SELECT DAYNAME('2023-07-25');
Resultado:
+-----------------------+ | DAYNAME('2023-07-25') | +-----------------------+ | Tuesday | +-----------------------+
O DAYOFMONTH()
Função
O
DAYOFMONTH()
função retorna o dia do número do mês. Exemplo:
SELECT DAYOFMONTH('2023-07-25');
Resultado:
+--------------------------+ | DAYOFMONTH('2023-07-25') | +--------------------------+ | 25 | +--------------------------+
O DAY()
Função
O
DAY()
função é na verdade um sinônimo para o DAYOFMONTH()
função. Exemplo:
SELECT DAY('2023-07-25');
Resultado:
+-------------------+ | DAY('2023-07-25') | +-------------------+ | 25 | +-------------------+
Como esperado, o mesmo resultado que
DAYOFMONTH()
. O DAYOFWEEK()
Função
O
DAYOFWEEK()
A função retorna o índice do dia da semana para a data, conforme especificado pelo padrão ODBC (1
=domingo, 2
=segunda-feira, …, 7
=sábado). Exemplo:
SELECT DAYOFWEEK('2023-07-25');
Resultado:
+-------------------------+ | DAYOFWEEK('2023-07-25') | +-------------------------+ | 3 | +-------------------------+
Veja
WEEKDAY()
abaixo para indexação diferente. O WEEKDAY()
Função
O
WEEKDAY()
função é semelhante a DAYOFWEEK()
na medida em que retorna o índice da semana para a data. A diferença é que ele usa uma numeração de índice diferente (0
=segunda-feira, 1
=terça-feira, … 6
=Domingo). Exemplo:
SELECT WEEKDAY('2023-07-25');
Resultado:
+-----------------------+ | WEEKDAY('2023-07-25') | +-----------------------+ | 1 | +-----------------------+
O DAYOFYEAR()
Função
O
DAYOFYEAR()
função retorna o dia do ano para a data, no intervalo 1
para 366
. Exemplo:
SELECT DAYOFYEAR('2023-07-25');
Resultado:
+-------------------------+ | DAYOFYEAR('2023-07-25') | +-------------------------+ | 206 | +-------------------------+
O MONTH()
Função
O
MONTH()
função retorna o mês no intervalo 1
para 12
para janeiro a dezembro, ou 0
para datas que tenham uma parte de mês zero (como 0000-00-00
). Exemplo:
SELECT MONTH('2023-07-25');
Resultado:
+---------------------+ | MONTH('2023-07-25') | +---------------------+ | 7 | +---------------------+
O MONTHNAME()
Função
Como o nome sugere, o
MONTHNAME()
função retorna o nome do mês. O idioma usado para o nome é controlado pelo valor do lc_time_names
variável do sistema. Exemplo:
SELECT MONTHNAME('2023-07-25');
Resultado:
+-------------------------+ | MONTHNAME('2023-07-25') | +-------------------------+ | July | +-------------------------+
O YEAR()
Função
O
YEAR()
A função retorna a parte do ano da data. Exemplo:
SELECT YEAR('2023-07-25');
Resultado:
+--------------------+ | YEAR('2023-07-25') | +--------------------+ | 2023 | +--------------------+