La función SQL DATEPART() puede devolver una sección particular de fecha y un resultado en un formato de número entero; puede aceptar dos argumentos, el intervalo y la fecha, por ejemplo: puede extraer la parte del día, mes, año, hora, segundos, etc.
Funciona de manera muy similar a DATENAME, en el sentido de que especifica una parte de la fecha. Al que tener presente que la función SQL DATEPART devuelve int y DATENAME devuelve nvarchar.
Sintaxis de la función SQL Datepart
DATEPART (intervalo, input_fecha)
Parámetros
- intervalo: Es una sección de la que podemos obtener una parte de la fecha que puede ser una fecha específica, ya que devuelve un valor entero para el intervalo en particular.
- input_fecha: es una sección de fecha que se va a extraer en la que podemos describir la fecha para obtener un valor particular de intervalo; nos permite definir valores directos para recuperar los valores de sus tipos de datos dados, como Date, DateTime, Datetimeoffset, Datetime2, Smalldatetime y Time.
La siguiente tabla enumera todos los valores de parte de fecha válidos:
parte de la fecha | abreviatura de parte de fecha |
---|---|
año | y, yy, yyyy |
cuarto | q q, q |
mes | mmm |
día del año | dy |
día | dd, d |
semana | semana, ww |
hora | S.S |
minuto | mi, n |
segundo | s, s |
milisegundo | EM |
microsegundo | mcs |
nanosegundo | ns |
tzoffset | tz |
iso_semana | isowk, isoww |
Ejemplo de la función SQL DATEPART
En el siguiente ejemplo, la función SQL DATEPART() devuelve cada una de las partes de la fecha dada, como un número entero.
SELECT getdate() AS 'FECHA DEL DIA',
DATEPART(d, getdate()) AS 'DíA',
DATEPART(m, getdate() )AS 'MES',
DATEPART(yyyy, getdate()) AS 'AÑO';
Arriba, la función DATEPART() devuelve el número de cada sección de la fecha actual. La función GETDATE() devuelve el valor de fecha y hora actual.
Ejemplos de SQL DATEPART
En el siguiente ejemplo, trabajamos una fecha con una variable, luego uso varias instancias de la función SQL DATEPART() para recuperar diferentes partes de esa fecha.
DECLARE @date datetime2 = '2022-08-12 09:23:12.4113031';
SELECT DATEPART(yy, @date) AS AÑO ,
DATEPART (mm, @date) AS MES ,
DATEPART (d, @date) AS DIA ,
DATEPART (hh, @date) AS HORA ,
DATEPART (minute, @date) AS MiNUTO ,
DATEPART (s, @date) AS SEGUNDO ,
DATEPART (ms, @date) AS MILISEGUNDO ,
DATEPART (mcs, @date) AS MICROSEGUNDO ,
DATEPART (q, @date) AS CUARTO ,
DATEPART (dayofyear,@date) AS ANTE_DE_AYER ,
DATEPART (wk, @date) AS SEMANA
En el ejemplo anterior, pasamos diferentes valores de parte de fecha en la función SQL DATEPART (). Mostrará el siguiente resultado:
Notas de uso de SQL DATEPART
Algunos puntos importantes a tener en cuenta al usar la función SQL DATEPART son los siguientes:
- Formato de la fecha: Es importante asegurarse de que el formato de la fecha o la hora se ajuste a los requisitos. Por ejemplo, SQL Server usa un formato de fecha predeterminado de ‘yyyy-mm-dd’.
- La segunda parte de DATEPART debe ser una cadena que especifique la parte de la fecha o la hora que se va a extraer. Asegúrese de usar la cadena correcta para la parte que se necesita.
- Zonas horarias: Si la hora que se va a extraer de una fecha o hora incluye una zona horaria, es importante tener en cuenta las conversiones de zona horaria adecuadas para asegurarse de que se obtiene el valor correcto.
- La función DATEPART puede afectar el rendimiento si se usa en consultas complejas. Es importante tener en cuenta el impacto de la función en la velocidad de la consulta y en la carga del sistema.
- Uso en expresiones: La función DATEPART se puede usar en expresiones para calcular valores derivados de las fechas y horas. Asegúrese de comprender cómo se combinan las funciones y operadores en las expresiones para obtener el resultado deseado.
- En general, la función DATEPART es una herramienta útil en SQL Server para extraer partes específicas de las fechas y horas, pero es importante tener en cuenta los detalles del sistema y las necesidades de la consulta para utilizarla de manera efectiva.