场景:
查看当前时间是否在某一时间内
例如当前是 周一上午10
点,就要去数据库查是否有每周一上午9-11点
的数据
关键sql片段:
AND bw.week_day = DATE_FORMAT(#{date}, '%w')
看了半天业务代码,发现并没有出错,最后在sql上发现了问题
执行如下sql
SELECT
DATE_FORMAT('2019-10-21 00:00:00', '%w') as w1, # 周一
DATE_FORMAT('2019-10-22 00:00:00', '%w') as w2, # 周二
DATE_FORMAT('2019-10-23 00:00:00', '%w') as w3, # 周三
DATE_FORMAT('2019-10-24 00:00:00', '%w') as w4, # 周四
DATE_FORMAT('2019-10-25 00:00:00', '%w') as w5, # 周五
DATE_FORMAT('2019-10-26 00:00:00', '%w') as w6, # 周六
DATE_FORMAT('2019-10-27 00:00:00', '%w') as w7 # 周日
发现周日是0
而并非7
,而关联的业务表里面的数值是7
,导致了查询不到数据!
这次的事故,真的应该记一下,很基础的问题,缺发生了,不管在做任何东西的时候,一定要考虑好细节!