首页 > 数据库 > SQL > 正文

SQL 日期函数如何获取当天开始时间?

冰川箭仙
发布: 2025-10-13 08:17:01
原创
403人浏览过
不同数据库获取当天开始时间的方法各异,核心是截断时间部分。MySQL用DATE()或CAST;SQL Server推荐CONVERT或DATEADD+DATEDIFF;Oracle使用TRUNC(SYSDATE);跨平台可采用日期转字符串后拼接'00:00:00'的方式实现。

sql 日期函数如何获取当天开始时间?

在 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 或结合 DATEADDDATEDIFF 来清空时间部分:

  • SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()))
  • SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)

第一种更直观,第二种效率更高,尤其适合大数据量查询。

使用 TRUNC(Oracle)

Oracle 提供了 TRUNC 函数,可直接将日期时间截断到天级别:

四维时代AI开放平台
四维时代AI开放平台

四维时代AI开放平台

四维时代AI开放平台 66
查看详情 四维时代AI开放平台
  • 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 日期函数如何获取当天开始时间?的详细内容,更多请关注php中文网其它相关文章!

    最佳 Windows 性能的顶级免费优化软件
    最佳 Windows 性能的顶级免费优化软件

    每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号