SQL, ( aDateTime >=’2003-04-30 00:00:00′ AND aDateTime <= ’2003-04-30 23:59:59′)

翟二喜
摘要

每一天在23:59:59秒后,还有一秒的时间,像标题这样的写法是错误的。

最近看到几个系统,在定位时间上都向上面这样写,我认为这样是不对的。因为每一天在23:59:59秒后,还有一秒的时间。如果记录频率总够庞大,这一秒钟内也会有数据的。

在我在我负责的业务系统中,查了3年来的150万个定单记录,找到了20多个在当天23:59:59~次天00:00:00之间的定单。

所以,对于DateTime型字段,应该采取下面的方式:
( aDateTime >= '2003-04-30' AND aDateTime < '2003-05-01' )

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  4   博主  0

  1. yxd 5

    hehe,是少了一秒的时间。

  2. Fish 5

    啊哈,我有时也这么写

  3. oyjt 5
  4. s 5

    呵呵,原来我们的业务系统中就是这样的写法,后来在一些查询中发现结果不对,后来才发现这个问题。