程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQLite 在 X 分钟范围内获取数据大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决sqlite 在 X 分钟范围内获取数据?

开发过程中遇到sqlite 在 X 分钟范围内获取数据的问题如何解决?下面主要结合日常开发的经验,给出你关于sqlite 在 X 分钟范围内获取数据的解决方法建议,希望对你解决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,请注明来意。
标签: