You need to enable JavaScript to run this app. 如何在SQL查询中将now()替换为当前日期加自定义时间
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL查询中将now()替换为当前日期加自定义时间

实现方案

核心逻辑分两种场景处理:

  1. 动态取当天日期+自定义固定时间:提取当前无时间的日期字段,拼接自定义的固定时间,替换原SQL中的now()即可
  2. 固定指定日期+自定义时间:直接写标准格式的时间字符串替换now()即可,比如示例的2021年7月28日上午8点直接写为'2021-07-28 08:00:00'

不同数据库的动态日期+自定义时间实现语法如下:

  • MySQL:两种常用写法
    • 直接拼接字符串:CONCAT(CURDATE(), ' 08:00:00')
    • 时间间隔叠加:DATE_ADD(CURDATE(), INTERVAL 8 HOUR)
  • PostgreSQL:CURRENT_DATE + INTERVAL '8 hours'
  • Oracle:TRUNC(SYSDATE) + INTERVAL '8' HOUR
  • SQL Server:DATEADD(HOUR, 8, CAST(GETDATE() AS DATE))

原SQL修改示例(以MySQL为例,动态取当天上午8点替换now())

(select count(*) from students where exams.id=students.exam_id and students.exam_id=exams.id 
and end_time <> ''and bb_user_id is not null and test_status<>1 and
review_end is null and (exam_end + interval 2 day) > DATE_ADD(CURDATE(), INTERVAL 8 HOUR) and exam_end < DATE_ADD(CURDATE(), INTERVAL 8 HOUR)) as current

如需调整自定义时间,修改对应参数即可,比如要设置为当天17点30分,MySQL下可直接写为CONCAT(CURDATE(), ' 17:30:00')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 23:03:00