SQL Server 2008:查询以搜索重叠日期内的今天的日期

阿尼鲁德(Anirudh)

在此处输入图片说明

我有上面的表格,其中需要获取与今天的日期匹配的NoteIndx。仅出于测试目的,假设今天是2013/06/02(2013年6月2日),那将为我带来noteindx 93105和104044的两项记录。

但是这里的正确值是104044,因为我需要选择STRTDATE和ENDDATE的日期跨度最短的值。

我正在尝试各种SQL查询,但到目前为止没有得到正确的结果。

谁能帮我获得最好的查询,以获得上述结果?

谢谢。

戈登·利诺夫(Gordon Linoff)

这是你想要的吗?

select top 1 n.*
from notes n
where cast('2013-06-02' as date) >= strtdate and
      cast('2013-06-02' as date) < enddate + 1
order by enddate - strtdate;

这不会使用,between因为您的日期存储为datetime-这总是会导致它们成为日期中时间部分的可能性。

如果您要今天的日期,请使用getdate()代替cast('2013-06-02' as date)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章