在本教學中,將學習如何使用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字串函數