【问题标题】:Time based filtering using sql使用 sql 进行基于时间的过滤
【发布时间】:2020-03-27 18:01:40
【问题描述】:

我需要根据日期和时间选择数据。我有两个条件。如何实现。

1) 选择 1-1-2013 和 1-10-2013 之间的数据,时间范围在 10 到 16 之间

2)选择2013年1月1日到2013年1月10日之间的数据,时间范围在第二天早上20点到8点之间

我实现了一个代码。它只适用于第一个条件。这里是那个代码。

 where date>='1-1-2013' AND date <'1-10-2013' 
     AND CAST(date AS TIME) between '10:00' and '16:00'

这里表格中的日期字段是日期时间类型。请帮助解决这个问题

【问题讨论】:

  • 您对第二个标准进行了哪些尝试,您的问题究竟是什么?
  • 查询中的第二个条件在哪里?我只能查看 1) 选择 1-1-2013 和 1-10-2013 之间的数据,时间范围在 10 到 16 之间
  • 我没有实施第二个标准。请帮我实施 thst
  • 很紧急,有人知道吗?

标签: sql sql-server sql-server-2008 tsql


【解决方案1】:

1)

WHERE Date Between '2013-01-01 10:00' AND '2013-10-01 16:00'

2)

WHERE Date Between '2013-01-01 20:00' AND '2013-10-01 08:00'

【讨论】:

    【解决方案2】:

    试试这个:

    DECLARE @tmp TABLE ( date DATETIME )
    
    INSERT  INTO @tmp
            ( date )
    VALUES  ( '2013-01-01 10:09:29'  -- date - datetime
              )
    INSERT  INTO @tmp
            ( date )
    VALUES  ( '2013-01-01 15:09:29'  -- date - datetime
              )
    INSERT  INTO @tmp
            ( date )
    VALUES  ( '2013-01-01 17:09:29'  -- date - datetime
              )
    INSERT  INTO @tmp
            ( date )
    VALUES  ( '2013-01-01 07:09:29'  -- date - datetime
              )
    SELECT  date
    FROM    @tmp AS t
    WHERE   CONVERT(DATE,date) >= CONVERT(DATE, '01-01-2013', 105)
            AND CONVERT(DATE,date) <= CONVERT(DATE, '01-01-2013', 105)
            AND CONVERT(TIME, date) BETWEEN CONVERT(TIME, '10:00')
                                    AND     CONVERT(TIME, '16:00')
    

    【讨论】:

    • 感谢您的帮助。但我需要选择2013年1月1日至2013年1月10日之间的数据,时间范围在20(晚上)到第二天早上8点之间。此查询不适用为此。请回复
    【解决方案3】:

    我理解正确吗?我不知道。。

    试试这个

    where date>='1-1-2013' AND date <'1-10-2013' 
         AND ((CAST(date AS TIME) between '10:00' and '16:00')
          OR (CAST(date AS TIME) between '20:00' and '23:59')
          OR (CAST(date AS TIME) between '00:00' and '08:00'))
    

    【讨论】:

      猜你喜欢
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多