在本教程中,将学习如何使用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()
从日期中提取日期部分。