在条款中处理日期的更好方法

bra*_*ant 3 mysql date

我想知道哪种类型的查询更好用:

SELECT * FROM table WHERE DATE >= '2010-7-20' AND DATE <= '2010-7-24'
Run Code Online (Sandbox Code Playgroud)

要么

SELECT * FROM table WHERE DATE_SUB('2010-07-24',INTERVAL 4 DAY) <= DATE
Run Code Online (Sandbox Code Playgroud)

Dog*_*ars 7

我总是使用>=<组合.

因此,如果您想要使用这四天的服务

where DATE >= '2010-07-20' AND DATE < '2010-07-24'
Run Code Online (Sandbox Code Playgroud)

这样可以确保即使存在实际日期(没有时间组件)和日期时间的混合,您也只能获得您所关注的日期.

因此,如果您将日期存储为2010-07-20 09:00:00,并将日期存储为2010-07-20,则它们都将被包括在内,但是2010-07-24的日期不会.

我不相信! 我不确定MySQL,但是SQL Server中的BETWEEN会给你包容性的结果,所以如果你想要的四个日期期间,如果我不希望它包含一个日期为2010-07-24的行. 20?(20日,21日,22日和23日)

因此,即使是午夜,也不应包括24日的任何日期..!

另外...... 通常在您的条件中使用函数可以阻止优化器使用任何索引..!需要注意的事情.

更重要的是...... 第二个查询不会产生与第一个查询相同的结果......是否全部存在?