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

3 maneiras de separar o ano, mês e dia de uma data no MariaDB


O MariaDB tem várias funções que permitem extrair várias partes de data e hora de valores de data/hora. Você pode usá-los para separar cada componente de data/hora em sua própria coluna, se necessário.

Abaixo estão três maneiras de extrair o ano, mês e dia de um valor de data no MariaDB.

O YEAR() , MONTH() , e DAY() Funções


O YEAR() , MONTH() , e DAY() As funções extraem o ano, mês e dia de um valor de data ou data e hora, respectivamente.

Aqui está um exemplo de como usar essas funções para retornar cada componente de data em sua própria coluna:
SELECT 
    YEAR('2025-08-30') AS "Year",
    MONTH('2025-08-30') AS "Month",
    DAY('2025-08-30') AS "Day";

Resultado:
+------+-------+------+
| Year | Month | Day  |
+------+-------+------+
| 2025 |     8 |   30 |
+------+-------+------+

O DAY() função é na verdade um sinônimo para DAYOFMONTH() , então qualquer um retornará o mesmo resultado.

Há também um WEEKDAY() função, um DAYOFWEEK() função, um DAYOFYEAR() função e um DAYNAME() função, cada uma das quais retorna uma representação diferente do dia.

Além disso, há um MONTHNAME() função que retorna o nome do mês, em vez de seu número.

Aqui está outro exemplo que inclui essas funções:
SELECT 
    YEAR('2025-08-30') AS "YEAR",
    MONTH('2025-08-30') AS "MONTH",
    MONTHNAME('2025-08-30') AS "MONTHNAME",
    DAY('2025-08-30') AS "DAY",
    DAYOFMONTH('2025-08-30') AS "DAYOFMONTH",
    WEEKDAY('2025-08-30') AS "WEEKDAY",
    DAYOFWEEK('2025-08-30') AS "DAYOFWEEK",
    DAYOFYEAR('2025-08-30') AS "DAYOFYEAR",
    DAYNAME('2025-08-30') AS "DAYNAME";

Resultado (usando saída vertical):
      YEAR: 2025
     MONTH: 8
 MONTHNAME: August
       DAY: 30
DAYOFMONTH: 30
   WEEKDAY: 5
 DAYOFWEEK: 7
 DAYOFYEAR: 242
   DAYNAME: Saturday

Você também pode usar funções como WEEK() para retornar o número da semana e QUARTER() para devolver o trimestre.

Exemplo:
SELECT 
    WEEK('2025-08-30') AS "Week",
    QUARTER('2025-08-30') AS "Quarter";

Resultado:
+------+---------+
| Week | Quarter |
+------+---------+
|   34 |       3 |
+------+---------+

A WEEK() A função aceita um segundo argumento que permite especificar o modo. Isso pode alterar o número da semana resultante, dependendo da data real. Veja como WEEK() Funciona no MariaDB para mais informações e um exemplo.

O EXTRACT() Função


O EXTRACT() A função permite extrair uma unidade especificada do valor de data/hora. Portanto, você pode usá-lo para extrair o ano, mês e dia da data (assim como semana e trimestre, se necessário).

Exemplo:
SELECT 
    EXTRACT(YEAR FROM '2023-03-12') AS "Year",
    EXTRACT(MONTH FROM '2023-03-12') AS "Month",
    EXTRACT(DAY FROM '2023-03-12') AS "Day",
    EXTRACT(WEEK FROM '2023-03-12') AS "Week",
    EXTRACT(QUARTER FROM '2023-03-12') AS "Quarter";

Resultado:
+------+-------+------+------+---------+
| Year | Month | Day  | Week | Quarter |
+------+-------+------+------+---------+
| 2023 |     3 |   12 |   11 |       1 |
+------+-------+------+------+---------+

O DATE_FORMAT() Função


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

Podemos, portanto, usar esta função para retornar o ano, mês, dia e semana de uma data.

Exemplo:
SELECT 
    DATE_FORMAT('2035-12-08', '%Y') AS "Year",
    DATE_FORMAT('2035-12-08', '%m') AS "Month",
    DATE_FORMAT('2035-12-08', '%d') AS "Day",
    DATE_FORMAT('2035-12-08', '%U') AS "Week";

Resultado:
+------+-------+------+------+
| Year | Month | Day  | Week |
+------+-------+------+------+
| 2035 | 12    | 08   | 48   |
+------+-------+------+------+

Existem vários especificadores de formato possíveis para cada parte da data. Cada parte da data pode retornar um valor diferente, dependendo do especificador de formato real fornecido. Por exemplo, você pode retornar o nome completo do mês usando %M em vez de %m .

Veja Strings de Formato MariaDB para uma lista completa de strings/especificadores de formato que podem ser usados ​​com DATE_FORMAT() .