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

将朱利安日期格式化为常规日期后出错

如何解决将朱利安日期格式化为常规日期后出错

所以我有以下表达式来转换儒略日期(格式为yyyy ###的AS400日期,其中#=日历天,即2020010 = 2020年1月10日,010是第十个日历日):

iif([JulianDateTable1]='',format(CONVERT(date,DATEADD(DAY,RIGHT([JulianDateTable2],3)-1,CONVERT(datetime,LEFT([JulianDateTable2],4)))),'YYYYMMDD'),RIGHT([JulianDateTable3],LEFT([JulianDateTable3],'YYYYMMDD')) AS agreementdate

运行此命令时,我收到以下错误消息:

从字符转换日期和/或时间时转换失败 字符串

不确定这是否与我尝试的日期格式“ YYYYMMDD”有关,但也尝试了“ MMddyy”并遇到相同的错误

谢谢!

解决方法

您可以使用日期算术将此输入转换为正确的日期数据类型。如果朱利安日期存储为字符串:

dateadd(
    day,convert(int,right(JulianDateTable2,3)) - 1,datefromparts(left(JulianDateTable2,4),1,1)
)

如果是整数值:

dateadd(
    day,JulianDateTable2 % 1000 - 1,datefromparts(JulianDateTable2 / 1000,1)
)

Demo on DB Fiddle

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