某个时间段提取昨天数据

00:00——09:00提取昨天的数据,过了09:00提取当天数据。这种怎么实现呀,sql好像不可以单独实现吧。各位大神请指教

FineReport pets 发布于 2021-12-21 09:38 (编辑于 2021-12-21 09:39)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
axingLv6专家互助
发布于2022-6-15 01:55

越判断越复杂

直接点,将当前时间减去9个小时之后,是哪天就取哪天的数据

where 日期字段='${left(todate(DATETONUMBER(now())-9*60*60*1000),10)}'

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-12-21 09:42(编辑于 2021-12-21 09:43)

你是什么数据库?

另外帆软有个hour()函数

image.png

  • pets pets(提问者) MySQL
    2021-12-21 09:44 
  • Z4u3z1 Z4u3z1 回复 pets(提问者) https://blog.csdn.net/qq_38486203/article/details/80654040 参考mysql关于日期时间的函数
    2021-12-21 09:57 
最佳回答
0
KimieeLv5见习互助
发布于2021-12-21 09:42

SQL是可以实现的,取now()格式化出时进行判断

最佳回答
0
luojian0323Lv7资深互助
发布于2021-12-21 09:47

sql数据集里先判断当前日期的时间值再查询

假如你已经把日期和时间分隔开了,时间是:HH:mm格式

${if(left(time,2)>0&&left(time,2)<=9,"select * from table where 你的条件1","select * from table where 你的条件")}

最佳回答
0
CD20160914Lv8专家互助
发布于2021-12-21 09:55

where 1=1

${if(hour(now())>9,"and left(mydate,10) =DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d')","and left(mydate,10) =DATE_FORMAT(CURDATE(), '%Y-%m-%d')")}

最佳回答
0
SrafyLv5见习互助
发布于2021-12-21 10:12

WHERE

( CASE WHEN TO_NUMBER( to_char( now( ), 'HH' ), '99' ) BETWEEN 0 AND 9 THEN 日期字段=今天-1 ELSE 日期字段=今天 END )

MySQL应该没有 now() 我不知道获取当前日期的是什么,替换一下

  • 6关注人数
  • 537浏览人数
  • 最后回答于:2022-6-15 01:55
    请选择关闭问题的原因
    确定 取消
    返回顶部