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

如何查询指定日期及之后的日期数据

日期范围查询的正确写法

你当前的SQL把日期转成字符串做精确匹配,所以只能查到指定当天的数据。要实现“指定日期及之后所有数据”的需求,直接用日期比较运算符即可,没必要转字符串(转字符串会浪费索引,还容易因为格式问题出错)。

基础写法(适用于日期/日期时间类型字段)

如果start_date是date或datetime类型,直接用>=运算符:

SELECT * 
FROM user u 
WHERE u.start_date >= '2012-12-24'

这个语句会返回所有start_date在2012-12-24 00:00:00及之后的数据。

处理带时分秒的场景

如果start_date是datetime类型,且你需要精确筛选某一天及之后的数据,更高效的写法是用明确的范围边界(这种写法能让数据库用上start_date字段的索引):

-- 示例:查询2012-12-24及之后的所有数据
SELECT * 
FROM user u 
WHERE u.start_date >= '2012-12-24'

如果是要单独查询2012-12-24全天的数据,可以这么写:

SELECT * 
FROM user u 
WHERE u.start_date >= '2012-12-24' 
  AND u.start_date < '2012-12-25'

特殊情况:日期存为字符串

如果你的start_date是字符串类型(不推荐这么存储日期),只要格式是YYYY-MM-DD这种标准格式,也可以用同样的>=比较,因为字符串的字典序和日期顺序一致:

SELECT * 
FROM user u 
WHERE u.start_date >= '2012-12-24'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:40:26