微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle:如何添加分钟到时间戳?

我需要添加30分钟到Oracle日期列中的值。我在我的SELECT语句中通过指定

to_char(date.and_time(.000694 * 31)

这在大多数时间工作。但不是当时间在AM / PM边界。例如,将30分钟增加到12:30 [这是PM]返回1:00,即AM。我预计的答案是13:00。什么是正确的方法这样做?

所有其他的答案基本上是正确的,但我不认为任何人直接回答你原来的问题。

假设你的例子中的“date_and_time”是一个类型为DATE或TIMESTAMP的列,我想你只需要改变这个:

to_char(date_and_time + (.000694 * 31))

对此:

to_char(date_and_time + (.000694 * 31),'DD-MON-YYYY HH24:MI')

听起来你的认日期格式使用“HH”代码的小时,而不是“HH24”。

此外,我认为你的常数术语是混乱和不精确。我想你做的是计算(.000694)是一分钟的价值,你乘以你想添加的分钟数(在这个例子中为31,虽然你在文本中说了30)。

我也会从一天开始,并将它分成你想在代码中的单位。在这种情况下,(1/48)将是30分钟;或者如果为了清楚起见,您可以写((1/24)*(1/2))。

这将避免舍入误差(除了浮点固有的那些在这里应该是无意义的),并且更清楚,至少对我。

原文地址:https://www.jb51.cc/oracle/206740.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐