在本教程中,将学习如何使用SQL Server DATEPART()函数来提取日期的一部分。
SQL Server DATEPART()函数简介
DATEPART()函数返回一个整数,它是日期的一部分,例如日,月和年。
以下是DATEPART()函数的语法:
DATEPART ( date_part , input_date )
DATEPART()函数有两个参数:
- date_part是要提取的日期的一部分(参见下表中的有效日期部分)。
- input_date是提取日期部分的日期。
| date_part | 缩写形式 | 
|---|---|
| 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 | 
SQL Server DATEPART()示例
下面来看一些使用DATEPART()函数的例子。
1. 将DATEPART()函数与变量一起使用
这个示例中将使用DATEPART()函数提取日期值的各个部分存储在变量中:
DECLARE @d DATETIME = '2022-03-04 15:30:18';
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;
执行上面查询语句,得到以下结果:

2. 使用DATEPART()函数与表列示例
下面将使用示例数据库中的sales.orders和sales.order_items进行演示。

以下示例使用DATEPART()函数按年,季度,月和日查询总销售额。
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];
执行上面查询语句,得到以下结果:
在此示例中,使用DATEPART()函数从shipped_date列中的值中提取年,季度,月和日。 在GROUP BY子句中,我们按日期部分汇总了总销售额(quantity * list_price)。
请注意,可以在SELECT,WHERE,HAVING,GROUP BY和ORDER BY子句中使用DATEPART()函数。
在本教程中,学习了如何使用SQL Server DATEPART()从日期中提取日期部分。
						上一篇:
								SQL Server日期函数
												下一篇:
								SQL Server字符串函数
												
						
						
					
					
					