如何解决Oracle查询随时间从儒略值转换为日期
我必须随时间将儒略值转换为常规日期。
Select to_char(to_date(2455198,'J'),'DD-MM-YYYY HH:mm:ss') from dual;
此查询正在运行,结果为01-01-2010 12:00:00
Select to_char(to_date(2455197.75001,'DD-MM-YYYY HH:mm:ss') from dual;
上述查询无法正常工作,并出现以下错误:ORA:01830: date format picture ends before converting entire input string
Julian值: 2455197.75001 ,等效日期值为: 2010年1月1日06:00:01
谢谢。
解决方法
正如@Chris所说,J需要一个整数,因此您可以使用floor
或trunc
来获得整数,并将小数部分用作不完整天数(再加上半天,正如@Chris在评论中指出的,要计入儒略时代starting at noon):
Select to_char(
to_date(floor(2455197.75001),'J')
+ mod(2455197.75001,1)
+ 0.5,'DD-MM-YYYY HH24:mi:ss')
from dual;
得到:
01-01-2010 06:00:01
请注意,我将HH
更改为HH24
,并将第二个mm
更改为mi
了几分钟。
您不能将分数与Julian值一起使用。作为docs state:
朱利安日;自公元前4712年1月1日以来的天数。 编号 用J指定的必须是整数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。