【发布时间】:2014-09-01 12:16:31
【问题描述】:
我有 2 个 SQL 脚本。像这样的:
"Date" > '2014-04-11' AND "Date" <= '2014-04-12'
另一个是这样的:
"Date" BETWEEN '2014-04-11' AND '2014-04-12'
现在我想知道是否有任何特定的最佳实践,一个做一个优于另一个的原因,如果由于某些明显的原因,其中一个更好,我错过了某个地方。
【问题讨论】:
-
这两个查询不是同义词。
BETWEEN包含两个参数。我建议阅读这两篇文章; What do BETWEEN and the devil have in common? 和 Bad habits to kick : mis-handling date / range queries。尽管是为 SQL Server 编写的,但许多参数对 Oracle 仍然有效。 -
不是相当的同义词;第一个有
>而不是>=,这可能是问题中的错误。不过,您想要找到哪些数据并不完全清楚。 (我还建议您不要使用带引号的标识符或隐式日期转换,但两者都超出了问题的范围)。 -
感谢您提供的链接,我一直在寻找这个主题,但我的“GoogleFu”在这件事上没有找到任何东西。