SQL Server取datetime的日期部分

SQLServer获取日期部分
本文介绍了一种在SQLServer中仅获取datetime类型字段的日期部分的方法。通过使用T-SQL的CONVERT函数并指定DATE作为转换目标,可以方便地实现这一需求。


SQL Server取datetime的日期部分

http://www.cnblogs.com/edong/archive/2016/11/18/6077922.html


select convert(date,getdate())





SQL Server 中,若需从 `datetime` 类型数据中提小时部分,并使用 24 小时制表示,可以通过内置的日期函数实现。由于 SQL Server 不支持 `EXTRACT` 函数(如某些其他数据库系统),因此需要借助 `DATEPART` 或 `CONVERT` 等函数来完成该任务。 可以使用 `DATEPART` 函数直接提小时值,其返回结果为整数类型,范围是 0 到 23,符合 24 小时制的需求: ```sql SELECT DATEPART(HOUR, [datetime]) AS HourOfDay FROM table; ``` 此方法适用于仅需获小时数值的情况[^1]。 如果需要将结果格式化为字符串形式(例如 `HH:00` 或 `HH`),则可结合 `CONVERT` 和字符串拼接操作实现。例如,以下查询将时间转换为 `yyyy-mm-dd hh` 格式,并保留 24 小时制: ```sql SELECT CONVERT(varchar(13), [datetime], 120) AS FormattedHour FROM table; ``` 上述语句中,`120` 是 ISO8601 标准格式对应的样式代码,输出形如 `2025-04-05 14` 的字符串,其中包含了日期和小时信息[^1]。 此外,若需将原始 `datetime` 数据按小时进行归零处理(即忽略分钟和秒),可使用 `DATEADD` 和 `DATEDIFF` 组合的方式: ```sql SELECT DATEADD(HOUR, DATEDIFF(HOUR, 0, [datetime]), 0) AS RoundedToHour FROM table; ``` 该方式将时间精确到小时级别,结果仍为 `datetime` 类型,可用于进一步的时间计算或分组操作。 ### 示例代码 ```sql -- 提小时数值(24小时制) SELECT DATEPART(HOUR, [datetime]) AS HourOfDay FROM table; -- 提格式化为字符串的日期+小时(yyyy-mm-dd hh) SELECT CONVERT(varchar(13), [datetime], 120) AS FormattedHour FROM table; -- 将时间四舍五入到最近一小时 SELECT DATEADD(HOUR, DATEDIFF(HOUR, 0, [datetime]), 0) AS RoundedToHour FROM table; ``` 这些方法均避免了对不支持的数据类型或表达式进行操作,符合 SQL Server 的语法限制。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值