gpt4 book ai didi

sql - 如何使用round和trunc得到dd :mm:yy:hh

转载 作者:行者123 更新时间:2023-12-04 18:28:45 26 4
gpt4 key购买 nike

我正在使用 oracle 11g 并且我有正常的时间戳(开始时间),它产生如下输出:

 23.09.14 05:15:00,000000000

现在我想要一个输出
23.09.14 05

也可以:
23.09.14 05:00:00,000000000

但是当我使用类似的东西时
round(starttime, 'HH') or trunc(starttime ,'HH24')我总是得到
23.09.14

完全没有时间。

环顾四周,我发现了stackoverflow
substr(TO_CHAR(starttime),0,LENGTH(TO_CHAR(starttime))-13)

它产生正确的输出作为字符,但是当我想对日期进行排序时,它不起作用,因为它按字母顺序排序。 (例如,1.3., 1.4, 1.5.... 而不是 1.3., 2.3., 3.3,...),

知道如何获得四舍五入到整小时的时间戳吗?

我将不得不在 group by 子句中使用该语句。完整的语句如下所示:
select round(starttime, 'HH24'), sum(counter) from wmsconsolidationorderdwct group by round(starttime, 'HH24') order by round(starttime, 'HH24') desc;

所以我无法显示舍入时间并按完整时间戳排序,因为这会违反 group by 子句。

最佳答案

这将截断到小时:

trunc(SYSTIMESTAMP) + extract(hour from SYSTIMESTAMP)/24

编辑:

我刚试过
SELECT TRUNC(SYSTIMESTAMP ,'HH24') FROM DUAL;

返回正确的结果。

Fiddle

关于sql - 如何使用round和trunc得到dd :mm:yy:hh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502288/

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