MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como obter o dia, mês e ano de uma data no SQL


A maioria dos principais RDBMSs tem funções que nos permitem extrair o dia, mês e ano dos valores de data e hora.

Alguns RDBMSs fornecem várias maneiras de fazer isso e outros são mais limitados. Abaixo estão exemplos de extração do dia, mês e ano dos valores de data em alguns dos RDBMSs mais populares.

MySQL


O MySQL tem várias funções que podem ser usadas para extrair o dia, mês e ano de uma data. Um deles é o EXTRACT() função:
SELECT 
    EXTRACT(DAY FROM '2035-12-19') AS Day,
    EXTRACT(MONTH FROM '2035-12-19') AS Month,
    EXTRACT(YEAR FROM '2035-12-19') AS Year;

Resultado:
+------+-------+------+
| Day  | Month | Year |
+------+-------+------+
|   19 |    12 | 2035 |
+------+-------+------+

Nesse caso, extraí cada parte da data para seu próprio campo.

Se você quiser que todas as partes da data sejam retornadas no mesmo campo, o DATE_FORMAT() função pode fazer isso para você.

O MySQL também tem várias funções que retornam partes específicas de uma data, como DAY() , MONTH() , YEAR() , etc

Consulte Retornar o dia, mês e ano no MySQL para obter mais exemplos.

Oráculo


Oracle tem um TO_CHAR() função que pode ser usada para extrair partes de datas em seus próprios campos, ou todas em um único campo. Aqui está um exemplo de como retorná-los em campos individuais:
SELECT 
    TO_CHAR(DATE '2035-09-26', 'Day') AS Day,
    TO_CHAR(DATE '2035-09-26', 'DD') AS DD,
    TO_CHAR(DATE '2035-09-26', 'Month') AS Month,
    TO_CHAR(DATE '2035-09-26', 'YYYY') AS Year
FROM DUAL;

Resultado:
         DAY    DD        MONTH    YEAR 
____________ _____ ____________ _______ 
Wednesday    26    September    2035    

Consulte esta lista completa de elementos de formato de data e hora no Oracle para obter uma lista de elementos de formato que podem ser usados ​​para formatar valores de data e hora com esta função.

Oracle também tem um EXTRACT() função que funciona como a função do MySQL de mesmo nome.

SQL Server


O SQL Server tem uma grande variedade de funções que podem retornar partes de data como dia, mês e ano.

O DATEPART() A função é projetada especificamente para retornar partes especificadas de uma data:
DECLARE @date date = '2045-07-03'; 
SELECT 
    DATEPART(day, @date) AS DAY, 
    DATEPART(weekday, @date) AS WEEKDAY, 
    DATEPART(month, @date) AS MONTH, 
    DATEPART(year, @date) AS YEAR;

Resultado:
+-------+-----------+---------+--------+
| DAY   | WEEKDAY   | MONTH   | YEAR   |
|-------+-----------+---------+--------|
| 3     | 2         | 7       | 2045   |
+-------+-----------+---------+--------+

Uma função semelhante é DATENAME() , que pode retornar nomes de dia e mês como uma string.

O SQL Server também possui funções como DAY() , MONTH() , YEAR() , etc que retornam uma parte de data específica.

E não vamos esquecer o FORMAT() função, que é perfeita se você deseja retornar todas as partes da data no mesmo campo.

Consulte 6 funções para obter o dia, o mês e o ano de uma data no SQL Server para obter mais exemplos.

PostgreSQL


O PostgreSQL tem algumas funções que podem retornar partes de datas de datas.

Aqui está um exemplo do DATE_PART() função:
SELECT 
    DATE_PART('DAY', date '2035-10-30') AS "Day",
    DATE_PART('DOW', date '2035-10-30') AS "DOW",
    DATE_PART('DOY', date '2035-10-30') AS "DOY",
    DATE_PART('MONTH', date '2035-10-30') AS "Month",
    DATE_PART('YEAR', date '2035-10-30') AS "Year";

Resultado:
 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

O PostgreSQL também tem um EXTRACT() função que basicamente faz a mesma coisa, exceto com uma sintaxe ligeiramente diferente.

E o TO_CHAR() A função pode ser usada se você quiser retornar várias partes de data no mesmo campo.

SQLite


SQLite é mais limitado quando se trata de funções de data e hora. No entanto, você ainda pode usar o STRFTIME() função para extrair o dia, mês e ano de uma data:
SELECT STRFTIME('%d %m %Y', '2035-12-01');

Resultado:
01 12 2035

Neste exemplo, retornei todas as partes da data no mesmo campo. Mas isso não é necessariamente obrigatório. Se você quiser que eles sejam retornados em campos diferentes, você pode chamar STRFTIME() várias vezes, cada uma com um elemento de formato diferente:
SELECT 
    strftime('%d', '2035-12-01') AS "Day",
    strftime('%m', '2035-12-01') AS "Month",
    strftime('%Y', '2035-12-01') AS "Year";

Resultado:
Day  Month  Year
---  -----  ----
01   12     2035

MariaDB


O MariaDB fornece uma grande seleção de funções que podem retornar o dia, mês e ano de um valor de data e hora.

Aqui está um exemplo do DATE_FORMAT() função:
SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');

Resultado:
+-------------------------------------------+
| DATE_FORMAT('2023-07-25', '%W, %D %M %Y') |
+-------------------------------------------+
| Tuesday, 25th July 2023                   |
+-------------------------------------------+

Essa função nos permite retornar todas as partes da data em um único campo (embora isso não seja obrigatório – você pode facilmente retornar cada parte da data em um campo diferente chamando DATE_FORMAT() várias vezes, cada vez com uma string de formato diferente).

E como alguns dos outros, o MariaDB também tem um EXTRACT() função que extrai uma determinada parte da data.

E há também uma grande variedade de funções específicas para cada parte da data, como DAY() , MONTH() , YEAR() , etc

Consulte 11 funções para obter o dia, mês e ano de uma data no MariaDB para obter um resumo completo.