如何在SQL中搜索日期?

时间:2008-12-11 07:32:32

标签: sql sql-server date sql-server-2000

我有一个我想要的事件管理系统,

如果活动注册了5天(2009年1月21日至2009年1月26日)那么如果另一个人想在2009年1月22日至2009年1月24日期间注册活动,那么它将不允许注册。我想使用SQL查询来检查这个,所以请告诉我我该怎么做。

3 个答案:

答案 0 :(得分:5)

只需填写其他答案,您就 How to Search for Date and Time Values Using SQL Server 2000

撰写了一篇很好的文章

它提醒您如何存储日期/时间值(两个日期/时间数据类型:datetime和smalldatetime)

它还指出Datetime和smalldatetime类似于浮点数据类型float和real,因为它们是近似的数字。这意味着从SQL Server检索的值可能与最初存储的值不同。

另外,它警告数据库设计人员并不总是适当地使用日期/时间列。在设计数据库时,应确定每个日期/时间列是否存储日期和时间,仅存储日期或仅存储时间。

practical queries on data/time结束。

您对DATEADD and DATEDIFF here也有很好的描述。

答案 1 :(得分:4)

SELECT *
来自事件e
WHERE(@startDate BETWEEN e.startDate和e.endDate)
或(@endDate BETWEEN e.startDate和e.endDate)
或(@startDate< e.startDate AND @endDate> e.endDate)

答案 2 :(得分:1)

在SQL帮助中查找DATEDIFF。