Aprenda a usar las funciones de fecha de SQL Server

las funciones de fecha de SQL server le proporcionan un conjunto de funciones que puede usar para manipular fechas. La función se utiliza para una amplia variedad de operaciones, como agregar semanas a una fecha, calcular la diferencia entre dos fechas o descomponer una fecha en sus partes fundamentales.

si no está familiarizado con las funciones SQL, entonces le recomendaría mirar con la introducción a las funciones integradas de SQL Server.

para obtener la mayor parte de esto y nuestras otras lecciones asegúrese de practicar el uso de los ejemplos!,

Todos los ejemplos de esta lección se basan en Microsoft SQL Server Management Studio y la base de datos AdventureWorks2012. Puede comenzar a usar estas herramientas gratuitas utilizando mi guía Introducción a SQL Server.

Introducción a las funciones de fecha de SQL Server

hay más de veinticinco funciones diferentes clasificadas como funciones de fecha en SQL server.

todas las funciones están listadas en la página funciones de fecha (Transact-SQL). Recomendaría visitar esa página para aprender sobre cada función.,

en lugar de reiterar ese material, nos centraremos en las funciones que he visto en las que se usan comúnmente en los negocios.

en las siguientes tablas categoricé las funciones y las codifiqué por colores. El código de color corresponde al capó probable que utilizaría esa función en particular en un entorno empresarial. El verde es más probable que se utilice, y el rojo menos.

Esta no es una escala estricta, y todas las funciones tienen un uso en algún caso de negocio, pero quería una manera de ayudarlo a reducir el campo a las más relevantes.,

Aquí está mi intento:

funciones DateTime – los más comunes son de color verde

funciones utilizadas para obtener la fecha y hora actuales

de todas las funciones que se utilizan para devolver la fecha y hora actuales, la función getdate es la función más utilizada.

GETDATE

La función GETDATE se utiliza para devolver los datos actuales y la hora del servidor. Esta función se vuelve útil cuando necesita comparar los datos, como la fecha del último pago con la fecha actual.,

la forma general de La función GETDATE es

GETDATE()

Aquí hay un ejemplo usando GETDATE

SELECT GETDATE()

Que devuelve 2015-08-09 21:55:00.477

Un ejemplo es el uso de GETDATE con DATEDIFF o DATEADD. Echa un vistazo a DATEDIFF para un ejemplo más completo.

funciones para obtener Partes de fecha

Las partes de fecha se refieren a varios componentes de una fecha, como el año, el mes o el día. Las partes de fecha se utilizan en varias funciones en esta sección y otras., Aquí hay una tabla de partes de fecha que puede usar en funciones como DATENAME, DATEPART, DATEDIFF y DATEADD.

Datepart Valores

Los nombres son bastante auto-explicativo. Cada parte de la fecha corresponde a un período bien conocido como el mes o la hora.

DATENAME

DATENAME es una función muy útil que se utiliza para devolver varias partes de una fecha, como el nombre del mes o el día de la semana correspondiente a una fecha en particular.,

la forma general de DATENAME es

DATENAME(date part, value)

donde la parte date corresponde a una lista de partes predefinidas y el valor es la fecha con la que está trabajando.

Esta función devuelve un valor de carácter.

Aquí hay un ejemplo que muestra varias partes de fecha en acción.

asumiendo que GETDATE devuelve 2015-08-10 12:56:25.313 los resultados de la consulta de ejemplo son

DATENAME Results

nota: hay muchas otras partes de fecha que puede usar con datename., Puede encontrar una lista completa en el sitio de MSDN.

Aquí hay un ejemplo que muestra cómo puede usar DATANAME para realizar un análisis de nivel de resumen de pedidos.

supongamos que el Gerente de Ventas desea un resumen de las ventas semanales. Usando la función DATENAME podemos proporcionar esa información.

Aquí están los resultados

DATENAME – Notice OrderWeek se ordena como un valor de carácter

quiero señalar, que aunque ordenamos por año y semana, las semanas parecen estar fuera de orden., Esto se debe a que la OrderWeek devuelta es un valor de carácter. Para ordenar entonces numéricamente necesitamos convertir el resultado a un valor numérico.

podríamos convertir fácilmente el valor dentro de la cláusula ORDER BY, pero eso no es necesario una vez que aprenda sobre DATEPART

DATEPART

devuelve un entero que representa la parte especificada de una fecha. Funciona muy similar a DATENAME, ya que especifica una parte de fecha y un valor, sin embargo, en lugar de devolver un valor de texto, como ‘July’, devuelve 7.,

la forma general de DATEPART es

DATEPART(date part, value)

donde la parte de fecha corresponde a una lista de partes predefinidas y el valor es la fecha con la que está trabajando.

Esta función devuelve un entero.

Aquí hay un ejemplo que muestra varias partes de fecha en acción.

asumiendo que GETDATE devuelve 2015-08-10 12:56:25.313 los resultados de la consulta de ejemplo son

DATEPART Results

nota: hay muchas otras partes de fecha que puede usar con datepart., Puede encontrar una lista completa en el sitio de MSDN.

también podemos obtener un resumen de los totales de ventas usando DATEPART como lo hicimos para DATENAME. Aquí está la consulta

usted nota que estos resultados están ordenados correctamente de acuerdo a la semana:

DATEPART resultados ordenados en orden numérico

día, mes, año

las funciones día, mes y Año devuelven, basadas en una fecha proporcionada, el día, mes o año como un entero.

La forma general es la misma para las tres funciones., Para la brevedad, solo mostraremos día, las otras dos funciones funcionan de manera similar.

Aquí está su forma general:

DAY(value)

donde el valor es la fecha con la que trabajar.

Aquí hay un ejemplo rápido que muestra estas funciones en play

SELECT HireDate, YEAR(HireDate) as HireYear, MONTH(HireDate) HireMonth, DAY(HireDate) as HireDayFROM HumanResources.Employee

cuyos resultados son:

resultados de día, mes y Año

es posible que haya notado que el año(valor) es datepart de mano corta(año, valor)., Ambos devuelven el mismo resultado, aquí hay una instrucción SQL que puede probar:

SELECT HireDate, YEAR(HireDate) as HireYear, DATEPART(year, HireDate) as HireYearFromDatePartFROM HumanResources.Employee

encontrará equivalencias similares para mes y día.

modificando y encontrando diferencia en fechas

DATEDIFF

la función DATEDIFF devuelve el número de años, meses, semanas o días entre dos fechas.

la forma general para DATEDIFF es

DATEDIFF(date part, start value, end value)

donde la parte de fecha corresponde a una lista de partes de fecha predefinidas como Año, Mes, semanas y días.

la diferencia se calcula entre el valor inicial y el valor final.,

esta función puede parecer un poco complicada, pero realmente vale la pena entenderla ya que tiene muchos usos prácticos en SQL.

Puede usarlo para calcular el número de días que una factura está vencida, o el número de días o semanas entre dos fechas.

considere este ejemplo:

El Vicepresidente de recursos humanos quiere premiar a todos los empleados con un premio de años de servicio. Le gustaría que produjera un informe de todos los empleados con más de diez años de servicio.,

para hacer esto, usaremos el informe DATEDIFF para mostrar el número de años de servicio y también para filtrar aquellos con menos de diez años de servicio.

Aquí es el SQL

SELECT NationalIDNumber, HireDate, DATEDIFF(year, HireDate, GETDATE()) YearsOfServiceFROM HumanResources.EmployeeWHERE DATEDIFF(year, HireDate, GETDATE()) >= 10ORDER BY YearsOfService DESC

Cuyos resultados son

DATEDIFF Resultados

DATEADD

La función DATEADD se utiliza para añadir años, meses, semanas o días entre una fecha.,

la forma general de DATEADD es

DATEADD (date part, number, value)

donde date part corresponde a una lista de partes de fecha predefinidas como year, month, weeks y days y number especifica el número de partes de fecha que se agregarán al valor.

si el número es positivo, entonces ese número de partes de fecha se agregan al valor.

si el número es negativo, entonces las partes de fecha se restan del valor.

esta función puede parecer un poco complicada, pero realmente vale la pena entenderla ya que tiene muchos usos prácticos en SQL.,

Puede usarlo para calcular el número de días hasta que la factura esté vencida, o el número de días o semanas en el futuro o pasado.

considere este ejemplo:

el gerente de ventas ha estado hablando con el gerente de producción sobre la venta de artículos en la web. Quieren producir las bicicletas tal y como se ordenan. Si las bicicletas se ordenaran hoy, ¿cuándo podrían estar disponibles para enviar al cliente?

si observa la tabla de productos, verá que hay un campo DaysToManufacture. Usando esto con DATEADD en conjunto con GETDATE () podemos calcular el número de días en el futuro.,

SELECT NAME, DaysToManufacture, GETDATE() as Today, DATEADD(day, DaysToManufacture, GETDATE()) EarliestDateFROM Production.ProductWHERE DaysToManufacture > 1

The results for this are

Use DATEADD to add DAYS to a DATE

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *