如何在SQL中搜索日期?

3

我正在使用一个事件管理系统,其中我想要实现的功能是:

如果一个事件已注册了5天(从2009年1月21日到2009年1月26日),那么如果另一个人想要在2009年1月22日至1月24日期间注册一个事件,系统将不允许注册。我想使用SQL查询来检查这一点,请告诉我如何做到。

3个回答

5

除了其他答案的补充,您可以在如何使用SQL Server 2000搜索日期和时间值中找到一篇好文章。

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

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

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

最后,它提供了关于日期/时间的实用查询

此外,您还可以在DATEADD和DATEDIFF的描述中找到详细信息。


4

选择所有列
从事件表 e 中
其中 (@startDate 在 e.startDate 和 e.endDate 之间)
或者 (@endDate 在 e.startDate 和 e.endDate 之间)
或者 (@startDate < e.startDate 并且 @endDate > e.endDate)


1

在SQL帮助中查找DATEDIFF。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接