gpt4 book ai didi

sql - 合并日期和时间并获取最新的日期时间

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

我有一个给定的预言机表:

enter image description here

DatumDATEZeitVARCHAR2

我必须将它们合并到一个日期并获取它们的最大(=最新)日期。我用 c# 中的 oracle reader 读取它并将它们组合起来,但为此我必须加载所有行,然后搜索最大值:

DateTime Tempdate = new DateTime();
Tempdate = Convert.ToDateTime(reader.GetValue(0).ToString());
Tempdate = Tempdate.AddHours(Convert.ToDateTime(reader.GetValue(1).ToString()).Hour);
Tempdate = Tempdate.AddMinutes(Convert.ToDateTime(reader.GetValue(1).ToString()).Minute);
Tempdate = Tempdate.AddSeconds(Convert.ToDateTime(reader.GetValue(1).ToString()).Second);

如何在 SQL 语句中完成此操作,以便我只获取具有最新日期的行?

最佳答案

您可以在时间组件上使用TO_DATE():

SELECT datum + ( TO_DATE( zeit, 'HH24:MI:SS' ) - TRUNC( TO_DATE( zeit, 'HH24:MI:SS' ) ) )
FROM table_name

然后,要获得最大值,您可以在此计算值上使用 MAX() ,或者考虑到可以使用日期/字母数字顺序比较这些值(假设时间分量不存在)超过23:59:59)你可以先找到最大值:

SELECT datum,
zeit
FROM (
SELECT datum,
zeit,
ROW_NUMBER() OVER ( ORDER BY datum DESC, zeit DESC ) AS rn
FROM table_name
)
WHERE rn = 1

这可以使用表上的任何索引。

然后在这一行上使用我的第一个查询(或 @AlexPoole 的 TO_DSINTERVAL() 解决方案)。

关于sql - 合并日期和时间并获取最新的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37590062/

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