如何在SQL Server 2012中通过两列搜索日期
假设我有一张这样的桌子:如何在SQL Server 2012中通过两列搜索日期,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,假设我有一张这样的桌子: Event (eventID, StartDateTime, EndDateTime) StartDateTime是datetime数据类型 EndDateTime是datetime数据类型 现在,示例数据可以是这样的: EventID StartDateTime EndDateTime ----------------------------------------------------------- 1 2014-
Event (eventID, StartDateTime, EndDateTime)
是StartDateTime
数据类型datetime
是EndDateTime
数据类型datetime
EventID StartDateTime EndDateTime
-----------------------------------------------------------
1 2014-02-21 00:00:00.000 2014-02-23 23:59:59.000
2 2014-02-22 00:00:00.000 2014-02-24 23:59:59.000
我想搜索在2014-02-23 00:00:00.000发生的事件
SELECT
*
FROM
Event
WHERE
(StartDateTime <= '2/23/2013 00:00:00 AM')
OR (EndDateTime >= '2/23/2013 00:00:00 AM')
选择
*
从…起
事件
哪里
(StartDateTime='2013年2月23日00:00:00 AM')
我已经尝试了上面的代码,但它没有返回正确的结果
我错过什么了吗?您能告诉我缺少什么吗?在WHERE子句中使用运算符。它指定要测试的范围
- 注BETWEEN运算符包括边界情况
如果test_表达式的值大于或等于begin_表达式的值且小于或等于end_表达式的值,则BETWEEN返回TRUE
在WHERE子句中使用运算符。它指定要测试的范围
- 注BETWEEN运算符包括边界情况
如果test_表达式的值大于或等于begin_表达式的值且小于或等于end_表达式的值,则BETWEEN返回TRUE
您是否尝试过中间人
DECLARE @EventTime DATETIME
SET @EventTime = '20140223 00:00:00'
SELECT *
FROM EVENT
WHERE @EventTime BETWEEN StartDateTime AND EndDateTime
你试过中间人吗
DECLARE @EventTime DATETIME
SET @EventTime = '20140223 00:00:00'
SELECT *
FROM EVENT
WHERE @EventTime BETWEEN StartDateTime AND EndDateTime
使用此查询
SELECT * FROM Event
WHERE '2014-02-23 00:00:00.000' BETWEEN StartDateTime and EndDateTime
使用此查询
SELECT * FROM Event
WHERE '2014-02-23 00:00:00.000' BETWEEN StartDateTime and EndDateTime
您不需要或
,您需要和
。您希望事件在指定日期之前或当天开始,并在指定日期之后结束:
SELECT
*
FROM
Event
WHERE
StartDateTime <= '20130223'
AND
EndDateTime > '20130223'
它的优点是,它不会(任意地)像您当前的范围那样排除一天中的最后一分钟。您不需要或,您需要和
。您希望事件在指定日期之前或当天开始,并在指定日期之后结束:
SELECT
*
FROM
Event
WHERE
StartDateTime <= '20130223'
AND
EndDateTime > '20130223'
这样做的好处是,它不会(任意地)排除一天中的最后一分钟,就像您当前的范围一样。从StartTime和enddatetime之间的“2013年2月23日00:00:00 AM”不能正确执行的事件中选择*?您可能需要在enddate中添加一点,因为如果我记得很清楚,它不包括从startdatime和enddatetime之间的“2013年2月23日00:00:00 AM”事件中选择*,这样做不正确?您可能需要在结束日期上添加一点内容,因为如果我记得很清楚,它不包括在内,因此不会返回任何内容!尝试设置@EventTime='20130223 00:00:00'您的示例数据包含2014的条目。。。尝试设置@EventTime='20140223 00:00:00';-)不归还任何东西!尝试设置@EventTime='20130223 00:00:00'您的示例数据包含2014的条目。。。尝试设置@EventTime='20140223 00:00:00';-)如何在sql server 2012中将“2014-02-21 00:00:00.000”转换为20140221?如何在sql server 2012中将“2014-02-21 00:00:00.000”转换为20140221?