SQLite如何编写SELECT语句筛选start字段小于当前时间的进行中节目行
SQLite查询语句参考
根据你的需求,对应不同的时间存储格式,可选以下查询方案:
情况1:start/end字段存为HH:MM格式的纯时间
如果仅需要筛选start小于当前时间的记录:
SELECT * FROM 你的表名 WHERE start < TIME('now');
如果需要准确匹配当前正在进行的节目(同时满足开始时间已到、结束时间未到,符合你给出的10:05查询示例效果),使用以下语句:
SELECT * FROM 你的表名 WHERE start <= TIME('now') AND end >= TIME('now');
情况2:start/end字段存为YYYY-MM-DD HH:MM:SS格式的完整时间
-- 仅筛选start小于当前时间 SELECT * FROM 你的表名 WHERE start < DATETIME('now'); -- 筛选正在进行的节目 SELECT * FROM 你的表名 WHERE start <= DATETIME('now') AND end >= DATETIME('now');
情况3:start/end字段存为Unix时间戳(整数格式)
-- 仅筛选start小于当前时间 SELECT * FROM 你的表名 WHERE start < STRFTIME('%s', 'now'); -- 筛选正在进行的节目 SELECT * FROM 你的表名 WHERE start <= STRFTIME('%s', 'now') AND end >= STRFTIME('%s', 'now');
注意:请将语句中的
你的表名替换为你实际使用的数据表名称。
内容的提问来源于stack exchange,提问作者karmel
相关产品推荐
相关产品推荐

