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

SQL查询需求:筛选datetime列中日期等于当前日期的Schedule数据

查询Schedule表中当日数据的SQL方案

嘿,这事儿好办!要查询Schedule表里schedule date(datetime类型)等于当前日期的记录,关键得处理datetime字段里的时分秒部分——要是直接用=匹配当前日期字符串,只会拿到时间恰好是00:00:00的记录,漏掉当天其他时间的条目。我给你分常用数据库整理了两种靠谱的实现方式:

核心思路

要么把datetime字段提取/转换为纯日期类型后和当前日期匹配,要么用范围查询(匹配从当天0点到次日0点前的所有时间),后者在有索引的情况下性能更优。

具体实现(按数据库分类)

  • MySQL/MariaDB

    方法1:用DATE()函数提取日期部分

    SELECT * 
    FROM Schedule 
    WHERE DATE(`schedule date`) = CURDATE();
    

    方法2:范围查询(推荐,能利用索引)

    SELECT * 
    FROM Schedule 
    WHERE `schedule date` >= CURDATE() 
      AND `schedule date` < CURDATE() + INTERVAL 1 DAY;
    
  • SQL Server

    方法1:通过CAST()转换为日期类型

    SELECT * 
    FROM Schedule 
    WHERE CAST([schedule date] AS DATE) = CAST(GETDATE() AS DATE);
    

    方法2:范围查询

    SELECT * 
    FROM Schedule 
    WHERE [schedule date] >= CAST(GETDATE() AS DATE) 
      AND [schedule date] < DATEADD(DAY, 1, CAST(GETDATE() AS DATE));
    
  • PostgreSQL

    方法1:用DATE()函数提取日期

    SELECT * 
    FROM Schedule 
    WHERE DATE("schedule date") = CURRENT_DATE;
    

    方法2:范围查询

    SELECT * 
    FROM Schedule 
    WHERE "schedule date" >= CURRENT_DATE 
      AND "schedule date" < CURRENT_DATE + INTERVAL '1 day';
    

小提示

如果你的schedule date字段创建了索引,优先用范围查询的方式——因为对字段用函数(比如DATE())会导致索引失效,除非你专门创建了函数索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:09:48