【问题标题】:SQL Greater than, Equal to AND Less ThanSQL 大于、等于 AND 小于
【发布时间】:2012-03-08 07:10:11
【问题描述】:

我想创建如下查询,但我不确定如何正确编码, 我希望它在 StartTime 的 1 小时内返回所有预订,这是我想出的:

SELECT BookingId, StartTime
FROM Booking
WHERE StartTime <=> 1.00

有可能吗?或者有办法解决吗?

我在网上找到的所有内容都不是关于在同一查询中使用大于、等于和小于所有内容。

【问题讨论】:

  • 你的意思是指定时间两边各 1 小时,不是吗?
  • 如果某人比您年长 (GREATER THAN)、您的年龄 (EQUAL TO) 或比您年轻 (LESS THAN),则该人可以是任何在世的地球上的人(或任何死者人,如果你想定义死者的年龄)。
  • 如果有人没有注意到,或者如果他们感到困惑,OP 会切换 &lt;&gt;

标签: sql select


【解决方案1】:

假设你使用 sql server:

WHERE StartTime BETWEEN DATEADD(HOUR, -1, GetDate())
                    AND DATEADD(HOUR, 1, GetDate())

【讨论】:

  • StartTime 检查间隔 2 小时。财政年度:select DATEADD(HOUR, -1, GetDate()) beforeAnHour, getdate () CurrentTime, DATEADD(HOUR, 1, GetDate()) AfterAnHour
【解决方案2】:

如果开始时间是日期时间类型,那么您可以使用类似

SELECT BookingId, StartTime
FROM Booking
WHERE StartTime >= '2012-03-08 00:00:00.000' 
AND StartTime <= '2012-03-08 01:00:00.000'

显然,您希望使用自己的时间值,但这应该会为您提供 1 小时内的所有内容,包括上限和下限。

您可以使用 GETDATE() 函数获取今天的当前日期。

【讨论】:

  • 刚想问 AND 是否可行。感谢您的快速回复
  • @user1081326 AND 可以工作,但我建议您使用其他 2 个答案中所示的 between 语句。
【解决方案3】:
declare @starttime datetime = '2012-03-07 22:58:00'

SELECT BookingId, StartTime
FROM Booking
WHERE ABS( DATEDIFF( minute, StartTime, @starttime ) ) <= 60

【讨论】:

    【解决方案4】:

    这样的东西应该可以工作L

    SELECT BookingId, StartTime
    FROM Booking
    WHERE StartTime between dateadd(hour, -1, getdate()) and getdate()
    

    【讨论】:

      猜你喜欢
      • 2011-01-25
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 2012-09-11
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      相关资源
      最近更新 更多