【问题标题】:Need help in sqlite select query在 sqlite 选择查询中需要帮助
【发布时间】:2018-07-26 00:47:18
【问题描述】:

我在从 sqlite 中选择数据时遇到问题。

我在数据库中存储了一些电视节目,我的数据库中有 2 列,显示“开始时间”和“结束时间”现在我想根据时间段选择数据,例如当前时间是下午 2 点而不是时间段从下午 2:00 到下午 2:30,我可以看到在 2 个时段之间播放的节目。但是对于已经开始的节目(例如 start_time 为下午 1 点且 end_time 为下午 3 点的节目),查询之间的查询将不起作用。

编辑:

我正在开发一个 android 应用程序,我必须在 sqlite db 中存储 3 天的电视节目。一旦所有数据都存储在数据库中,我必须根据列表视图中的当前时间段显示数据,时间段为半小时,例如 1:00 到 1:30、1:30 到 2:00、2:00 到 2:30等我想显示当前在给定时间段播放的所有节目。

我尝试在查询之间使用 sqlite

SELECT * FROM table_name WHERE start_time BETWEEN 'time_stamp' 和 'time_stamp1'

time_stamp 是时间段的第一个时间,即上例中的 1:00

time_stamp2 是时间段的第二次,即上例中的 1:30

这将为我提供在给定时间段之间开始和结束的所有节目。

但如果节目从 12:00 开始并在 2:00 或 3:00 之后结束,则在这种情况下查询将不起作用

我也试过

SELECT * FROM table_name WHERE start_time='time_stamp1'

【问题讨论】:

  • 您正在为查询而苦苦挣扎,但您的标签错误(您的问题与 android 无关)并且没有提供有问题的查询
  • 请先分享您为实现输出所做的努力。
  • 你想根据给定的时间参加下一场演出吗?
  • 请检查我编辑的问题

标签: android sqlite


【解决方案1】:

如果我正确理解您的问题,查找此类数据的通用方法是按show.end_time >= :param_start_time and show.start_time <= :param_end_time 过滤。

【讨论】:

    【解决方案2】:

    这里的查询将用于获取 02:00:00 PM 到 02:30:00 PM 之间的所有节目

    选择开始时间,结束时间 FROM table-name where (start_time '02:00:00' or end_time > '02:30:00'));


    (show.start_time param_start_time or show.end_time > param_end_time))

    and get following results :
    
    start_time end_time
    02:00:00	03:00:00
    02:00:00	02:30:10
    01:00:00	03:00:00
    02:29:59	03:00:00
    02:18:00	02:45:00
    01:30:00	02:15:00
    02:10:00	02:20:10

    【讨论】:

    • 我想知道这个答案比 onestep 更好,(end_time > '02:00:00' or end_time > '02:30:00') 是多余的,因此可以简化为 start_time <= '02:00:00' and end_time > '02:00:00',这几乎是 onestep 的答案。
    • 嗨,这是您的一步查询“start_time '02:00:00'” 将不会得到从 02:10:00 开始的节目
    • 一步一步回答不正确 "show.end_time >= :param_start_time and show.start_time
    • OP 声明当前时间是 02:00,所以如果我的问题正确,没有得到从 02:10 开始的节目应该是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多