SQL Server datepart() 函数

定义和用法

DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

语法

DATEPART(datepart,date)

date 参数是合法的日期表达式。datepart 参数可以是下列的值:

datepart缩写
yy, yyyy
季度qq, q
mm, m
年中的日dy, y
dd, d
wk, ww
星期dw, w
小时hh
分钟mi, n
ss, s
毫秒ms
微妙mcs
纳秒ns

实例

假设我们有下面这个 "Orders" 表:

OrderIdProductNameOrderDate
1'Computer'2008-12-29 16:25:46.635

我们使用如下 SELECT 语句:

SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(mm,OrderDate) AS OrderMonth,
DATEPART(dd,OrderDate) AS OrderDay
FROM Orders
WHERE OrderId=1

结果:

OrderYearOrderMonthOrderDay
20081229
### SQL Server 中 `DATEPART()` 函数的使用方法及示例 `DATEPART()` 函数用于从日期表达式中提取特定的日期部分,例如年、月、日、小时等。它返回的是一个整数,而不是字符串,这在进行数学计算或比较时非常有用[^3]。 #### 语法 ```sql DATEPART(datepart, date) ``` 其中: - `datepart`:指定要提取的日期部分,例如 `year`、`month`、`day` 等。 - `date`:表示一个日期表达式,可以是列名、变量或常量。 #### 示例 ##### 提取年份 ```sql SELECT DATEPART(year, '2023-04-15') AS YearPart; -- 返回 2023 ``` 该语句从给定日期中提取出年份部分[^1]。 ##### 提取月份 ```sql SELECT DATEPART(month, '2023-04-15') AS MonthPart; -- 返回 4 ``` 此查询提取了日期中的月份信息[^2]。 ##### 提取日期 ```sql SELECT DATEPART(day, '2023-04-15') AS DayPart; -- 返回 15 ``` 该语句提取了日期中的日部分[^3]。 ##### 按日期分组汇总销售数据 假设有一个包含销售记录的表,其中包含 `shipped_date` 和 `quantity` 字段,以下查询按年份和季度汇总总销售额: ```sql SELECT DATEPART(year, shipped_date) AS OrderYear, DATEPART(quarter, shipped_date) AS OrderQuarter, SUM(quantity * list_price) AS TotalSales FROM SalesOrders GROUP BY DATEPART(year, shipped_date), DATEPART(quarter, shipped_date); ``` 此查询利用 `DATEPART()` 从 `shipped_date` 列中提取年份和季度,并根据这些字段对销售金额进行汇总[^4]。 ##### 查询特定日期条件的数据 以下查询将查找 `CreateDate` 的“日”部分与指定日期相同的记录: ```sql SELECT SpecificationId, SpecificationRevision, SpecificationDescription, CreateDate FROM Specification WHERE DATEPART(day, CreateDate) = DATEPART(day, '2023-05-06 09:56:17.903'); ``` 该语句筛选出 `CreateDate` 列中日部分等于 `'2023-05-06'` 日的所有记录[^5]。 ### 常见支持的 `datepart` 参数 | 参数 | 描述 | |------------|--------------| | `year` | 年份 | | `quarter` | 季度 | | `month` | 月份 | | `dayofyear`| 一年中的第几天 | | `day` | 日期 | | `week` | 周数 | | `weekday` | 星期几(数字)| | `hour` | 小时 | | `minute` | 分钟 | | `second` | 秒 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值