SQL Server DATEPART Function

Summary: in this tutorial, you will learn how to use the SQL Server DATEPART() function to extract a part of a date.

SQL Server DATEPART() function overview #

The DATEPART() function returns an integer that is a part of a date such as a day, month, or year.

Here’s the syntax of the DATEPART() function:

DATEPART ( date_part , input_date )Code language: SQL (Structured Query Language) (sql)

The DATEPART() takes two arguments:

  • date_part is the part of a date to be extracted. ( See the valid date parts in the table below).
  • input_date is the date from which the date part is extracted.
date_partabbreviations
yearyy, yyyy
quarterqq, q
monthmm, m
dayofyeardy, y
daydd, d
weekwk, ww
weekdaydw
hourhh
minutemi, n
secondss, s
millisecondms
microsecondmcs
nanosecondns
TZoffsettz
ISO_WEEKisowk, isoww

SQL Server DATEPART() examples #

Let’s take some examples of using the DATEPART() function.

1) Using DATEPART() function with variables #

This example uses the DATEPART() function to extract various parts of a date value stored in a variable:

DECLARE @d DATETIME = '2019-01-01 14:30:14';
SELECT 
   DATEPART(year, @d) year, 
   DATEPART(quarter, @d) quarter, 
   DATEPART(month, @d) month, 
   DATEPART(day, @d) day, 
   DATEPART(hour, @d) hour, 
   DATEPART(minute, @d) minute, 
   DATEPART(second, @d) second;Code language: SQL (Structured Query Language) (sql)

Here is the output:

SQL Server DATEPART Function with variable example

2) Using DATEPART() function with table columns example #

We will use the sales.orders and sales.order_items from the sample database for demonstration.

Sample Tables

The following example uses the DATEPART() function to query the gross sales by year, quarter, month, and day.

SELECT 
  DATEPART(year, shipped_date) [year], 
  DATEPART(quarter, shipped_date) [quarter], 
  DATEPART(month, shipped_date) [month], 
  DATEPART(day, shipped_date) [day], 
  SUM(quantity * list_price) gross_sales 
FROM 
  sales.orders o 
  INNER JOIN sales.order_items i ON i.order_id = o.order_id 
WHERE 
  shipped_date IS NOT NULL 
GROUP BY 
  DATEPART(year, shipped_date), 
  DATEPART(quarter, shipped_date), 
  DATEPART(month, shipped_date), 
  DATEPART(day, shipped_date) 
ORDER BY 
  [year] DESC, 
  [quarter], 
  [month], 
  [day];Code language: SQL (Structured Query Language) (sql)

Here is the partial output:

SQL Server DATEPART Function with table column example

In this example, we used the DATEPART() function to extract year, quarter, month, and day from the values in the shipped_date column. In the GROUP BY clause, we aggregated the gross sales ( quantity * list_price) by these date parts.

Note that you can use the DATEPART() function in the SELECT, WHERE, HAVING, GROUP BY, and ORDER BY clauses.

Summary #

  • Use the SQL Server DATEPART() to extract a date part from a date.
Was this tutorial helpful?