DATENAME() Function in SQL Server
Table of Content:
Syntax:
DateName(DatePart, Date)
DateName(DatePart, Date) - Returns a string, that represents a part of the given date. This functions takes 2 parameters. The first parameter 'DatePart' specifies, the part of the date, we want. The second parameter, is the actual date, from which we want the part of the Date.
DatePart | Abbreviations |
---|---|
year | yy, yyyy |
quarter | qq, q |
month | mm, m |
dayofyear | dy, y |
day | dd, d |
week | wk, ww |
weekday | dw |
hour | hh |
minute | mi, n |
second | ss, s |
millisecond | ms |
microsecond | mcs |
nanosecond | ns |
TZoffset | tz |
ISO_WEEK | isowk, isoww |
Code:
Select DATENAME(Day, '2012-09-30 12:43:46.837') -- Returns 30 Select DATENAME(WEEKDAY, '2012-09-30 12:43:46.837') -- Returns Sunday Select DATENAME(MONTH, '2012-09-30 12:43:46.837') -- Returns September
Example:
Select Name, DateOfBirth, DateName(WEEKDAY,DateOfBirth) as [Day], Month(DateOfBirth) as MonthNumber, DateName(MONTH, DateOfBirth) as [MonthName], Year(DateOfBirth) as [Year] From tblEmployees
SQL Server DATENAME()
function example
This example uses the DATENAME()
function to return various date parts of the '2020-10-02 10:20:30.1234567 +08:10'
:
DECLARE @dt DATETIME2= '2020-10-02 10:20:30.1234567 +08:10'; SELECT 'year,yyy,yy' date_part, DATENAME(year, @dt) result UNION SELECT 'quarter, qq, q', DATENAME(quarter, @dt) UNION SELECT 'month, mm, m', DATENAME(month, @dt) UNION SELECT 'dayofyear, dy, y', DATENAME(dayofyear, @dt) UNION SELECT 'day, dd, d', DATENAME(day, @dt) UNION SELECT 'week, wk, ww', DATENAME(week, @dt) UNION SELECT 'weekday, dw, w', DATENAME(weekday, @dt) UNION SELECT 'hour, hh' date_part, DATENAME(hour, @dt) UNION SELECT 'minute, mi,n', DATENAME(minute, @dt) UNION SELECT 'second, ss, s', DATENAME(second, @dt) UNION SELECT 'millisecond, ms', DATENAME(millisecond, @dt) UNION SELECT 'microsecond, mcs', DATENAME(microsecond, @dt) UNION SELECT 'nanosecond, ns', DATENAME(nanosecond, @dt) UNION SELECT 'TZoffset, tz', DATENAME(tz, @dt) UNION SELECT 'ISO_WEEK, ISOWK, ISOWW', DATENAME(ISO_WEEK, @dt);
Output:
The above code will produce the following result-
date_part |
result |
day, dd, d |
2 |
dayofyear, dy, y |
276 |
hour, hh |
10 |
ISO_WEEK, ISOWK, ISOWW |
40 |
microsecond, mcs |
123456 |
millisecond, ms |
123 |
minute, mi,n |
20 |
month, mm, m |
October |
nanosecond, ns |
123456700 |
quarter, qq, q |
4 |
second, ss, s |
30 |
TZoffset, tz |
+00:00 |
week, wk, ww |
40 |
weekday, dw, w |
Friday |
year,yyy,yy |
2020 |