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.