【问题标题】:Convert Julian Date to Normal System Date in Silverlake(USing SQL statement)在 Silverlake 中将 Julian 日期转换为普通系统日期(使用 SQL 语句)
【发布时间】:2020-11-23 01:54:40
【问题描述】:

我正在尝试在 SilverLake DB 中将 Julian Date 转换为 Gregorian/Normal Date(mm/dd/yyyy)。

我正在使用 Oracle SQL 语句来查询 SilverLake db。我试过了:

TO_CHAR(<myfieldname>,'YYYYDDD')

但是 SilverLake DB 给我一个错误:

参数 1 对 TO_CHAR 函数无效

非常感谢您的帮助。提前致谢。

【问题讨论】:

    标签: sql oracle date julian-date


    【解决方案1】:

    因为我是新用户,所以我不能回复之前的评论,但是这个答案也在那里回复。您所说的 SilverLake DB 实际上是 Db2 for i 数据库的特定供应商实现 (Jack Henry & Associates),因为他们的 SilverLake 核心银行系统。这是 IBM iSeries 附带的数据库,这是一款中端计算机,也以其旧名称 AS/400(想想大型机,只是更小)而闻名。虽然过时了,但由于遗留原因,它仍然被使用,尤其是在银行系统中,例如 SilverLake

    ORACLE 特定命令将无法在那里工作,除非碰巧 IBM 也在使用它们,并且您所做的任何研究都应该参考 Db2 for i,我除非您直接联系供应商,否则怀疑您会找到很多关于 SilverLake 的内容。

    我很幸运,您正在尝试执行以下声明:

    COGSUP.JDTODATE(<myfieldname>)
    

    这会将数据类型转换为 ISO 日期格式,在我看来,这应该是数据库上唯一使用的日期格式。

    如果您仍需要将其转换为美式表示法以进行演示,您可以使用 to_char 语句将其包装起来:

    to_char(COGSUP.JDTODATE(<myfieldname>), 'MM/DD/YYYY')
    

    【讨论】:

      【解决方案2】:

      只需使用to_date() 将朱利安日期转换为date

      to_date(col, 'j')
      

      那么如果你需要用给定的格式来表示日期,你可以使用to_char():

      to_char(to_date(col, 'j'), 'mm/dd/yyyy')
      

      【讨论】:

      • 感谢您的回复。我对'j'有点困惑。你能详细说明那部分吗?
      • @botdeveloper: j 是朱利安日期的格式模型。更多信息请参见the Oracle documentation(在页面中搜索“Julian”)。
      • 谢谢...我知道它适用于 Oracle。似乎它不适用于 SIlverLake DB。
      • 这是 Oracle 还是 Silverlake 的问题?
      猜你喜欢
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      • 2019-07-23
      • 2021-12-14
      相关资源
      最近更新 更多