La mayoría de los principales RDBMS tienen funciones que nos permiten extraer el día, el mes y el año de los valores de fecha y hora.
Algunos RDBMS ofrecen varias formas de hacerlo y otros son más limitados. A continuación se muestran ejemplos de cómo extraer el día, el mes y el año a partir de valores de fecha en algunos de los RDBMS más populares.
MySQL
MySQL tiene varias funciones que se pueden usar para extraer el día, el mes y el año de una fecha. Uno de estos es el EXTRACT()
función:
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 | +------+-------+------+
En este caso, extraje cada parte de la fecha a su propio campo.
Si desea que todas las partes de la fecha se devuelvan en el mismo campo, DATE_FORMAT()
función puede hacer esto por usted.
MySQL también tiene un montón de funciones que devuelven partes de fechas específicas de una fecha, como DAY()
, MONTH()
, YEAR()
, etc.
Consulte Devolver el día, el mes y el año en MySQL para obtener más ejemplos.
Oráculo
Oracle tiene un TO_CHAR()
función que se puede utilizar para extraer partes de la fecha en sus propios campos, o todo en un solo campo. Aquí hay un ejemplo de devolverlos en campos individuales:
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 fecha y hora en Oracle para obtener una lista de elementos de formato que se pueden usar para formatear valores de fecha y hora con esta función.
Oracle también tiene un EXTRACT()
función que funciona como la función de MySQL del mismo nombre.
Servidor SQL
SQL Server tiene una amplia gama de funciones que pueden devolver partes de fecha como día, mes y año.
El DATEPART()
La función está diseñada específicamente para devolver partes específicas de una fecha:
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 | +-------+-----------+---------+--------+
Una función similar es DATENAME()
, que puede devolver nombres de días y meses como una cadena.
SQL Server también tiene funciones como DAY()
, MONTH()
, YEAR()
, etc. que devuelven una parte de fecha específica.
Y no olvidemos el FORMAT()
función, que es perfecta si desea devolver todas las partes de la fecha en el mismo campo.
Consulte 6 funciones para obtener el día, mes y año de una fecha en SQL Server para obtener más ejemplos.
PostgreSQL
PostgreSQL tiene algunas funciones que pueden devolver partes de fechas a partir de fechas.
Aquí hay un ejemplo de DATE_PART()
función:
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
PostgreSQL también tiene un EXTRACT()
función que básicamente hace lo mismo, excepto con una sintaxis ligeramente diferente.
Y el TO_CHAR()
La función se puede usar si desea devolver varias partes de fecha en el mismo campo.
SQLite
SQLite es más limitado cuando se trata de funciones de fecha y hora. Sin embargo, aún puede usar el STRFTIME()
función para extraer el día, mes y año de una fecha:
SELECT STRFTIME('%d %m %Y', '2035-12-01');
Resultado:
01 12 2035
En este ejemplo, he devuelto todas las partes de la fecha en el mismo campo. Pero esto no es necesariamente obligatorio. Si desea que se devuelvan en diferentes campos, puede llamar a STRFTIME()
varias veces, cada una con un 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
MariaDB proporciona una gran selección de funciones que pueden devolver el día, el mes y el año a partir de un valor de fecha y hora.
Aquí hay un ejemplo de DATE_FORMAT()
función:
SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');
Resultado:
+-------------------------------------------+ | DATE_FORMAT('2023-07-25', '%W, %D %M %Y') | +-------------------------------------------+ | Tuesday, 25th July 2023 | +-------------------------------------------+
Esa función nos permite devolver todas las partes de la fecha en un solo campo (aunque esto no es obligatorio; podría devolver fácilmente cada parte de la fecha en un campo diferente llamando a DATE_FORMAT()
varias veces, cada vez con una cadena de formato diferente).
Y como algunos de los otros, MariaDB también tiene un EXTRACT()
función que extrae una parte de fecha dada.
Y también hay una amplia gama de funciones específicas para cada parte de la fecha, como DAY()
, MONTH()
, YEAR()
, etc.
Consulte 11 funciones para obtener el día, el mes y el año de una fecha en MariaDB para obtener un resumen completo.