【发布时间】:2019-07-11 17:04:12
【问题描述】:
我想运行查询以检查输入日期是否在表中的任何给定术语日期范围内。
学期日期示例表:
<table border="1">
<tr><th>termID</th><th>txtStartDate</th><th>txtFinishDate</th></tr>
<tr><td>37</td><td>2017-09-05 00:00:00</td><td>2017-12-15 23:59:00</td></tr>
<tr><td>38</td><td>2018-01-09 00:00:00</td><td>2018-03-29 23:59:00</td></tr>
<tr><td>39</td><td>2018-04-24 00:00:00</td><td>2018-07-06 23:59:00</td></tr>
<tr><td>40</td><td>2018-09-04 00:00:00</td><td>2018-12-14 23:59:00</td></tr>
<tr><td>41</td><td>2019-01-08 00:00:00</td><td>2019-03-29 23:59:00</td></tr>
<tr><td>42</td><td>2019-04-24 00:00:00</td><td>2019-07-05 23:59:00</td></tr></table>
给定一个日期,比如说今天的日期,它是否介于任何行的开始日期和结束日期之间。
示例代码方法
date = now()
for (row in rows):
if date between row.txtStartDate and row.txtEndDate:
return "yes"
我可以在给定日期的逻辑之间使用,但不确定如何将其应用于整个表格。
select case when getdate() between '2019-04-24 00:00:00' and '2019-07-05 23:59:00' then 'yes' else 'no' END
谢谢
【问题讨论】:
-
您提供的代码不是 T-SQL;您如何寻找解决方案?
-
代码是我在 SQL 之外会做什么的一个例子。在 SQL 中,就像 Select case when getdate() between ...logic... then "yes" else "no"
-
您有一个名为“日期”的列,但它似乎有一个时间组件。我很困惑。
-
也许该列应该称为 txtStartDateTime,但我无法控制这一点。 :(
标签: sql sql-server date