不同数据库获取当天开始时间的方法各异,核心是截断时间部分。MySQL用DATE()或CAST;SQL Server推荐CONVERT或DATEADD+DATEDIFF;Oracle使用TRUNC(SYSDATE);跨平台可采用日期转字符串后拼接’00:00:00’的方式实现。

在 SQL 中获取当天开始时间(即当天 00:00:00)的方法因数据库类型而异,但核心思路是将当前日期的时间部分截断或重置为零。以下是几种常见数据库的实现方式。
使用 DATE() 或 CAST 函数(MySQL)
MySQL 中可以通过 DATE() 提取日期部分,再转换为 datetime 类型来获得当天开始时间:
SELECT DATE(NOW())SELECT CAST(CURDATE() AS DATETIME)SELECT STR_TO_DATE(DATE(NOW()), ‘%Y-%m-%d’)
这三条语句都会返回类似 2024-04-15 00:00:00 的结果。
使用 CONVERT 或 DATEADD(SQL Server)
SQL Server 常用 CONVERT 或结合 DATEADD 与 DATEDIFF 来清空时间部分:
SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()))SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
第一种更直观,第二种效率更高,尤其适合大数据量查询。
使用 TRUNC(Oracle)
Oracle 提供了 TRUNC 函数,可直接将日期时间截断到天级别:
ImagetoCartoon
一款在线AI漫画家,可以将人脸转换成卡通或动漫风格的图像。
106 查看详情
SELECT TRUNC(SYSDATE) FROM dual
默认行为就是归零时间部分,返回当天 00:00:00。
通用方法:日期转字符串再拼接(跨平台兼容)
如果需要兼容多种数据库,可以先提取日期字符串,再拼接 ’00:00:00’:
SELECT CAST(CAST(GETDATE() AS DATE) AS DATETIME)– 或 MySQL 写法:SELECT CONCAT(CURDATE(), ‘ 00:00:00’)
这种方法逻辑清晰,便于理解,适合初学者使用。
基本上就这些常用方式。选择哪种取决于你使用的数据库系统和性能要求。关键是理解“开始时间”本质是“日期部分 + 时间归零”。
以上就是SQL 日期函数如何获取当天开始时间?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1054069.html
微信扫一扫
支付宝扫一扫