Table of Contents

    How to Use the DATENAME() Function in SQL Server: A Detailed Guide

    How to Use the DATENAME() Function in SQL Server: A Detailed Guide

    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