You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的SQLite3中从datetime列筛选唯一日期?

解决SQL查询返回重复日期的问题

问题说明

数据库日期字段包含时间部分,需要获取仅含日期、无重复的结果,期望格式:[('2023-07-28',), ('2023-07-29',), ...]

当前执行的语句:

CURSOR.execute(f"SELECT strftime('%Y-%m-%d', date) FROM {name}_schedule WHERE strftime('%Y-%m-%d', date) >= DATE('now') LIMIT(6) OFFSET({count})")

返回结果存在重复日期:[('2023-07-28',), ('2023-07-28',), ('2023-07-28',), ('2023-07-29',), ('2023-07-29',), ('2023-07-29',)]

解决方法

在SELECT后添加DISTINCT关键字过滤重复值,修改后的语句:

CURSOR.execute(f"SELECT DISTINCT strftime('%Y-%m-%d', date) FROM {name}_schedule WHERE strftime('%Y-%m-%d', date) >= DATE('now') LIMIT(6) OFFSET({count})")

原因解释

原语句仅将带时间的日期格式化为纯日期,但未对结果去重,同一个日期下的多条记录会被逐一返回,导致重复值。DISTINCT关键字会让SQL返回唯一的结果集,自动剔除重复的日期条目。

内容的提问来源于stack exchange,提问作者PR. OR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:00:57