大佬教程收集整理的这篇文章主要介绍了SQLite 在 X 分钟范围内获取数据,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个应用程序,该应用程序使用 sqlite 存储来自用户的消息,其格式如下。
uuID |日期 |留言
其中 @H_696_7@uuID 是 IntegeR,@H_696_7@date 是 datetiR_674_11845@E,而 @H_696_7@message 只是一个字符串。 我很好奇的问题是……我在同一时间段发送了多条消息,例如在 2020-11-30 02:00:01 发送了 2 条消息,在 2020-11-30 02: 00:05 又是 5 个,2020-11-30 02:00:50 又是 10 个。
如何进行查询以返回时间增量为 X 分钟的所有日期的列表?
例如,假设我的数据库中有数据的下降列表: @H_696_7@[2020-11-30 02:00:01,2020-11-30 02:00:11,2020-11-30 02:01:51,2020-11-30 02:01:40,2020-11-30 02:00:32] 我的时间增量是 1 分钟,我想要的输出将是 @H_696_7@[2020-11-30 02:00:01,2020-11-30 02:01:01] 或者,如果我的时间增量为 5 分钟,那么输出将仅为 @H_696_7@[2020-11-30 02:00:01]
我不确定我的问题是否足够清楚,所以如果它让我知道我该如何做这样的查询,如果不是,请告诉我,我会再次尝试解释。
您可以使用递归 @H_696_7@CTE:
@H_696_7@WITH cte(datE) AS ( @R_675_10288@CT MIN(datE) FROM tablename union all @R_675_10288@CT datetiR_674_11845@e(date,'+1 minute') FROM cte WHERE datetiR_674_11845@e(date,'+1 minute') < (SELECT MAX(datE) FROM tableName) ) @R_675_10288@CT date FROM cte
或者,如果您想将此逻辑应用于自定义日期时间列表:
@H_696_7@WITH list(datE) AS ( VALUES ('2020-11-30 02:00:01'),('2020-11-30 02:00:11'),('2020-11-30 02:01:51'),('2020-11-30 02:01:40'),('2020-11-30 02:00:32') ),cte(datE) AS ( @R_675_10288@CT MIN(datE) FROM list union all @R_675_10288@CT datetiR_674_11845@e(date,'+1 minute') FROM cte WHERE datetiR_674_11845@e(date,'+1 minute') < (SELECT MAX(datE) FROM list) ) @R_675_10288@CT date FROM cte
参见demo。
以上是大佬教程为你收集整理的SQLite 在 X 分钟范围内获取数据全部内容,希望文章能够帮你解决SQLite 在 X 分钟范围内获取数据所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。