Python 时间过滤器不工作

Python Time Filter Not Working

我有一个用于生成 GIS 地图的脚本。正在映射的事件使用 "elif" 语句按一天中的时间过滤事件数据:

    elif iHours == 8:
        if x == 0:
            stTime = "00:00:00"
            endTime = "23:59:59"
        elif x == 1:
            stTime = "07:00:00"
            endTime = "14:59:59"
        elif x == 2:
            stTime = "15:00:00"
            endTime = "22:59:59"
        elif x == 3:
            stTime = "23:00:00"
            endTime = "06:59:59"

0 到 2 工作正常,但脚本在 3 (23:00:00 - 06:59:59) 上不起作用。这是我用来过滤数据的 IF 语句。

    "' AND \"Time\" >=  '" +  stTime + "' AND \"Time\" <= '" + endTime + "'"

任何帮助将不胜感激。

首先,几个一般性提示:

  • 如果您使用SQL,请尝试使用像样的ORM, probably SQLAlchemy。它将为您节省很多时间和麻烦。
  • 更干净的过滤器是 ... AND (Time >= 07:00:00 AND Time < 15:00:00) 而不是 :59:59 hack。

对于解决方案:案例 #3 的过滤器应该使用 OR,因为时间不能既在 23:00 之后又在 07:00 之前:

... AND (Time < 07:00:00 OR Time >= 23:00:00)