Articles

.Guide

Posted by admin

Transact-SQL incluye un montón de funciones que nos ayudan a trabajar con fechas y horas. Una de las tareas más comunes cuando se trabaja con fechas es extraer las diferentes partes de la fecha. Por ejemplo, a veces solo queremos el año, o el mes. Otras veces podríamos querer el día de la semana. De cualquier manera, hay muchas maneras de hacer esto en SQL Server.

en particular, las siguientes funciones le permiten devolver el día, el mes y el año a partir de una fecha en SQL Server.,

  • DAY(), MONTH(), y YEAR()
  • DATEPART()
  • DATENAME()
  • FORMAT()

Estas funciones se explican a continuación.

las funciones DAY(), MONTH () y YEAR ()

la forma más obvia de devolver el día, mes y año a partir de una fecha es usar las funciones T-SQL del mismo nombre. Sí, T-SQL tiene funciones construidas específicamente con el propósito de devolver estos tres dateparts.,

he Aquí un ejemplo de cómo funciona esto:

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';SELECT DAY(@date) AS DAY, MONTH(@date) AS MONTH, YEAR(@date) AS YEAR;

Resultado:

+-------+---------+--------+| DAY | MONTH | YEAR ||-------+---------+--------|| 2 | 6 | 2018 |+-------+---------+--------+

Estas funciones devuelven el datepart como un entero. Devuelven el mismo resultado que la función DATEPART() devuelve para el datepart especificado.

la función DATEPART ()

la función DATEPART() se construyó específicamente para devolver partes especificadas de una fecha., Por lo tanto, podemos usar esta función para devolver exactamente el mismo resultado que el ejemplo anterior:

resultado:

+-------+-----------+---------+--------+| DAY | WEEKDAY | MONTH | YEAR ||-------+-----------+---------+--------|| 2 | 7 | 6 | 2018 |+-------+-----------+---------+--------+

una ventaja de usar esta función es que también puede devolver otras partes de la fecha y hora. Como se puede ver en este ejemplo, he devuelto el día de la semana así como el día (day es el día del mes, weekday es el día de la semana). También puede devolver las distintas partes del tiempo,como minutos, segundos, milisegundos, etc. Para obtener más ejemplos, consulte DATEPART() ejemplos en SQL Server.,

la función DATEPART() devuelve su resultado como un entero, y por lo tanto, no podrá obtener el nombre del mes o el nombre del día de la semana a partir de la fecha. Pero no se preocupe, puede usar las funciones DATENAME() o FORMAT() para eso.

la función DATENAME ()

la función DATENAME() es similar a la función DATEPART(), excepto que devuelve el resultado como una cadena de caracteres en lugar de un entero., DATENAME() también devuelve mes y día de la semana como su nombre completo, en lugar de su valor numérico.

Ejemplo:

Resultado:

+-------+-----------+---------+--------+| DAY | WEEKDAY | MONTH | YEAR ||-------+-----------+---------+--------|| 2 | Saturday | June | 2018 |+-------+-----------+---------+--------+

Para más ejemplos de esta función, consulte DATENAME() Ejemplos en SQL Server.

la función FORMAT ()

podemos usar la función FORMAT() para devolver los mismos valores que con la función DATENAME(), y más.

Esta es una función más versátil que las anteriores. Le permite formatear la fecha / hora, así como los valores numéricos como cadenas., El valor devuelto es nvarchar o null (dependiendo de la entrada), y la longitud de la cadena está determinada por el formato especificado.

FORMAT() también proporciona más opciones sobre cómo se presenta el datepart. Puede especificar si desea mostrarlo como un solo carácter, dos caracteres, tres, cuatro e incluso cinco en algunos casos.

Aquí hay ejemplos para demostrar.,

Día

Resultado:

+-----+------+-------+----------+| d | dd | ddd | dddd ||-----+------+-------+----------|| 2 | 02 | Sat | Saturday |+-----+------+-------+----------+

Mes

Resultado:

+-----+------+-------+--------+| M | MM | MMM | MMMM ||-----+------+-------+--------|| 6 | 06 | Jun | June |+-----+------+-------+--------+

Año

Resultado:

+-----+------+-------+--------+---------+| y | yy | yyy | yyyy | yyyyy ||-----+------+-------+--------+---------|| 18 | 18 | 2018 | 2018 | 02018 |+-----+------+-------+--------+---------+

Aviso de que tenemos la opción de formatear la parte de año de cinco dígitos.

acerca del número de dígitos

cuando se devuelve un datepart en forma de dígito, el especificador de formato determina el número mínimo de dígitos a devolver., Por ejemplo, cuando se utiliza yyy , el año se devolverá como tres dígitos si el año es 0008pero como cuatro dígitos si el año es 2008.

ejemplo:

resultado:

+-----+------+-------+--------+---------+| y | yy | yyy | yyyy | yyyyy ||-----+------+-------+--------+---------|| 8 | 08 | 008 | 0008 | 00008 |+-----+------+-------+--------+---------+

Además, al usar la opción única (por ejemplo, d) como especificador de fecha, deberá agregar un espacio si solo desea que se devuelva esa datepart por sí misma. Si no haces esto, obtendrás más que esa sola datepart.,

ejemplo:

resultado:

+---------+------------+---------+------------+---------+------------+| Space | No Space | Space | No Space | Space | No Space ||---------+------------+---------+------------+---------+------------|| 2 | 6/2/2008 | 6 | June 2 | 8 | June 2008 |+---------+------------+---------+------------+---------+------------+

para obtener más ejemplos deFORMAT(), consulte Cómo formatear la fecha y la hora en SQL Server.

Leave A Comment