You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从MySQL数据库中查询匹配今日日期的数据

查询今日预约数据的SQL实现

嘿,这事儿简单!要查询appointment_date(date类型)列匹配今日日期的数据,不同数据库的SQL写法略有差异,我给你整理了几种常用场景的实现:

MySQL/MariaDB

直接用CURDATE()函数获取纯今日日期,和date类型列精准匹配:

SELECT * FROM your_table_name
WHERE appointment_date = CURDATE();

CURDATE()返回的是不带时间的当前日期,刚好和你的appointment_date列类型完全契合,不会出现时间部分干扰匹配的问题。

PostgreSQL

用CURRENT_DATE获取今日日期即可:

SELECT * FROM your_table_name
WHERE appointment_date = CURRENT_DATE;

CURRENT_DATE本身就是date类型,和你的列类型匹配度拉满,过滤结果精准。

SQL Server

如果是SQL Server 2012及以上版本,可以直接用CURRENT_DATE;兼容旧版本的话,需要把带时间的当前日期转成纯date类型:

-- 兼容所有SQL Server版本的写法
SELECT * FROM your_table_name
WHERE appointment_date = CAST(GETDATE() AS DATE);

-- SQL Server 2012+ 简化写法
SELECT * FROM your_table_name
WHERE appointment_date = CURRENT_DATE;

CAST(GETDATE() AS DATE)会截断当前时间的时分秒部分,只保留日期,确保和你的appointment_date列匹配。

Oracle

通过TRUNC(SYSDATE)截断系统时间到日期部分:

SELECT * FROM your_table_name
WHERE appointment_date = TRUNC(SYSDATE);

TRUNC(SYSDATE)会去掉系统当前时间的时分秒,返回纯日期,完美匹配你的date类型列。

小提醒

  • 要是你的appointment_date列实际是datetime/timestamp类型,上面的写法依然有效,因为我们用到的函数都只保留了日期部分,数据库会自动处理类型转换。
  • 如果数据库时区和你的业务时区不一致,记得调整日期函数的时区设置(比如MySQL里可以用CURDATE() AT TIME ZONE 'Asia/Shanghai',根据实际时区修改)。

内容的提问来源于stack exchange,提问作者Himamsh Kilubatla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:54:05