SQL Server DATEPART 函数将从现有日期提取或显示指定的日期部分。此 Datepart 函数始终返回一个整数值。因此,例如,如果要从现有日期提取年份、月份或季度,可以使用此函数。
SQL Server Datepart 函数的语法如下所示。
DATEPART (Datepart, Date)
Date:请将有效日期指定为第二个参数。它可以是列、表达式或任何变量。我们将以输出形式显示给定日期的部分。
以下是可用日期部分参数的列表。
| 日期部分 | 缩写 | 描述 |
|---|---|---|
| 年 | yy, yyyy | 它将显示给定年份的值。 |
| 季度 | qq, q | 它将查找并显示季度编号 |
| 月 | mm, m | 它将查找并显示月份编号 |
| 年中的第几天 | dy, y | 用户给定日期一年中的天数(1 到 365) |
| 日 | dd, d | 给定日期中的日数(1 到 31) |
| 周 | wk, ww | 此函数将返回周数 |
| 星期几 | dw, w | 给定日期中的星期几编号(0 为星期日,6 为星期六) |
| 小时 | hh | 打印小时值。 |
| 分钟 | mi, n | 分钟值 |
| 秒 | ss, s | 秒值 |
| 毫秒 | ms | 毫秒值 |
| 微秒 | mcs | 其中的微秒值 |
| 纳秒 | ns | 打印纳秒值。 |
| 时区偏移 | tz | 打印时区偏移值。 |
| ISO 周 | isowk, isoww | 返回 ISO 周数 |
SQL Server DATEPART 函数示例
在此 DATEPART 示例中,我们将声明一个 datetime2 数据类型的变量。然后,让我们为该变量分配一个有效日期并执行所有可用操作。
我们声明了一个变量并为该 SQL Server 变量分配了日期和时间。在此,第一个 select 语句打印年份值,下一个打印月份编号。
DECLARE @Date datetime2 = '2015-08-25 14:24:04.1234567' SELECT 'YEAR' AS [DatePart], DATEPART(year, @Date) AS [New Date] UNION ALL SELECT 'QUARTER', DATEPART(quarter, @Date) UNION ALL SELECT 'MONTH', DATEPART(month, @Date) UNION ALL SELECT 'DAYOFYEAR', DATEPART(dayofyear, @Date) UNION ALL SELECT 'DAY', DATEPART(day, @Date) UNION ALL SELECT 'WEEK', DATEPART(week, @Date) UNION ALL SELECT 'WEEKDAY', DATEPART(weekday, @Date) UNION ALL SELECT 'HOUR', DATEPART (hour, @Date) UNION ALL SELECT 'MINUTE', DATEPART(minute, @Date) UNION ALL SELECT 'SECOND', DATEPART(second, @Date) UNION ALL SELECT 'MILLISECOND', DATEPART(millisecond, @Date) UNION ALL SELECT 'MICROSECOND', DATEPART(microsecond, @Date) UNION ALL SELECT 'NANOSECOND',DATEPART(nanosecond, @Date)

DATEPART 示例 2
在此 SQL DATEPART 函数示例中,我们使用自定义表之一对 Hire Date 列执行 Datepart 操作。
SELECT [FirstName] + ' '+ [LastName] AS [Full Name]
,[Occupation]
,[YearlyIncome]
,[HireDate]
,DATEPART(year, [HireDate]) AS [YEAR]
,DATEPART(quarter, [HireDate]) AS [QUARTER]
,DATEPART(month, [HireDate]) AS [MONTH]
,DATEPART(day, [HireDate]) AS [DAY]
FROM [Employee]

它将显示 HireDate 列中的年份值。
DATEPART(year, [HireDate]) AS [YEAR]
下面的 Date Function 语句将显示 HireDate 列中的季度值。
DATEPART(quarter, [HireDate]) AS [YEAR]