在 SQL 中搜索两次之间的变量

Posted

技术标签:

【中文标题】在 SQL 中搜索两次之间的变量【英文标题】:Searching for variable between two times in SQL 【发布时间】:2015-07-27 20:48:32 【问题描述】:

我有一个日期时间格式的变量 date_entered。我创建了一个临时字段 TIME,它只是 date_entered 的时间部分。我试图搜索早上 7 点到晚上 7 点之间每小时输入的门票数量。我需要在早上 7 点到晚上 7 点之间获取每小时增量的门票,因此 7-8、8-9、9-10 等之间的门票将显示在不同的列中。

现在我有:

=Iif((Hour(Fields!Time.Value) >= 7) AND 
     (Hour(Fields!Time.Value) < 8), Fields!TicketNbr.Value, 0) 

但是,这并不是只获取此小时间隔之间的票,而是获取当天的所有票。我怎样才能在那个小时内买到票?我还通过 Microsoft Visual Studio 使用 BIDS。谢谢!

【问题讨论】:

正如下面的答案所建议的,我认为您的问题是使用 8 而不是 20。 【参考方案1】:

为什么需要临时字段 TIME? SQL Server 2008 上有一个 TIME 数据类型,它允许您执行以下操作:

SELECT * FROM YourTable WHERE CAST(YourDateField AS TIME) BETWEEN '07:00' and '19:00'

【讨论】:

好吧,我需要 12 个不同的增量来搜索票证。它不是早上 7 点到晚上 7 点,整体上是 7-8,8-9,9-10 等... 调节您的 SELECT 查询,添加 WHERE 以将结果限制在该时间范围内。您可以使用我发布的查询,但使用您的初始临时变量。

以上是关于在 SQL 中搜索两次之间的变量的主要内容,如果未能解决你的问题,请参考以下文章

SQL,在计算两次之间的差异时插入表

SQL 两次之间的差异(以秒为单位)

两次之间的时间差(分钟)

在PHP中获取两次之间的时间差[重复]

找出两次之间的差异

java中两次之间小时的正确格式