sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo obtener el día, mes y año de una fecha en SQL

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.