La función DATENAME() devuelve una cadena, tipo navarchar, que representa una parte de fecha especificada, puede ser un día, mes, año u hora de fecha específica.
DATENAME() es similar a DATEPART() excepto por el tipo de retorno.
La función DATENAME() devuelve la parte de la fecha como una cadena de caracteres mientras que DATEPART() devuelve la parte de la fecha como un entero.
SYNTAX
DATENAME (datepart, inputdate)
datepart es la parte de una fecha a extraer.
inputdate es la fecha de la que se extrae la parte de la fecha.
Veamos un ejemplo de la función DATENAME en SQL.
La siguiente sentencia utiliza la función DATENAME, que extrae las partes de la fecha dada ‘2018-03-27 18:23:45.470’
DECLARE @date DATETIME = '2018-03-27 18:23:45.470';SELECT DATENAME(year, @date) as year,DATENAME(quarter, @date) as quarter,DATENAME(month, @date) as month,DATENAME(day, @date) as day,DATENAME(dayofyear ,@date) as dayofyear,DATENAME(Week ,@date) as week,DATENAME(hour, @date) as hour,DATENAME(minute, @date) as minute,DATENAME(second, @date) as second ,DATENAME(millisecond, @date) as millisecond ,DATENAME(microsecond, @date) as microsecond ,DATENAME(nanosecond, @date) as nanosecond
Como puede ver, devuelve todas las partes de la fecha como Quarter, Month, day, dayofyear, week, hour, minute, second, milisecond, microsecond, and nanosecond.
Así que usando la función DATENAME puedes obtener cualquier parte de la fecha.
Las siguientes son las listas válidas de partes de la fecha que puedes usar para obtener una parte de la fecha según tus requerimientos.
day d, dd month m, mmyear yy, yyyyquarter qq, qhour hhminute mi, nsecond ss, smillisecond msmicrosecond mcsnanosecond nsweek wk, wwdayofyear dy, y
DATEPART VS DATENAME
Veamos un ejemplo considerando la diferencia entre DATEPART y DATENAME.
DATEPART devuelve una parte de la fecha como un entero mientras que DATENAME devuelve una cadena de datos.
Así que si se añade cualquier número al resultado devuelto por DATEPART, se añade el número al resultado y devuelve el resultado modificado, mientras que cuando se añade cualquier número al resultado devuelto por DATENAME, se concatena el número con el resultado en lugar de añadirlo.
Vamos a ver un ejemplo, en la siguiente declaración se puede ver para la fecha dada tratamos de añadir el valor 2 en el resultado devuelto por DATEPART y DATENAME función para la parte de la fecha del mes y el año para la fecha dada.
Puedes ver el resultado final donde la función DATEPART añade el 2 en el resultado mientras que DATENAME concatena el 2 con el resultado.
DECLARE @date DATETIME = '2018-03-27 18:23:45.470';SELECT DATENAME(month, @date) + '2' as month_from_DateName, DATEPART(month, @date) + '2' as month_from_DatePart SELECT DATENAME(year, @date) + '2' as year_from_DateName, DATEPART(year, @date) + '2' as year_from_DatePart,
Recomendado para ti
SQL Server DATEPART()
325 vistas totales, 3 vistas hoy