gpt4 book ai didi

sqlite - 从 SQLite 中的表中获取上一个日期和小时

转载 作者:行者123 更新时间:2023-12-03 15:45:13 25 4
gpt4 key购买 nike

我有以下情况:

在一个表中,我有 4 列:

CommentsTBL:
ID int
Data datetime
Hour Varchar
Comment Varchar

Hour 列是 varchar 类型,不要问我为什么....

给定表中的特定日期和时间,我需要找到上一条和下一条记录。如果我能找到其中一个(上一个或下一个),使用相同的逻辑可以很容易地找到另一个。

举个例子:
ID  Data        Hour    Comment
1. 2011-01-12 17:00 SomeComments1
2. 2011-01-14 10:00 SomeComments3
3. 2011-01-14 11:00 SomeComments4
4. 2011-01-13 14:00 SomeComments2

ID 4 的前一个日期是 ID 1,下一个日期是 ID 2。

我为此想出了一个解决方案,但我想看看你们中是否有人有更好的方法,也许只使用一个 SELECT。这是针对上一个:
SELECT 
Data,
MAX(Hour) Hour
FROM
CommentsTBL
WHERE
Data in (SELECT
MAX(Data)
FROM
CommentsTBL
WHERE
Data < MyDate or (Data = MyDate and Hour < MyHour)
)
GROUP BY
Data

谢谢。

最佳答案

为什么不:

select *
from ( SELECT data, hour from commentsTbl
where data < mydate
or ( data = mydate and hour < myhour )
order by data desc, hour desc
limit 1
)
union all
select *
from ( SELECT data, hour from commentsTbl
where data > mydate
or ( data = mydate and hour > myhour )
order by data asc, hour asc
limit 1
)

关于sqlite - 从 SQLite 中的表中获取上一个日期和小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4689484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com