在数据阶段将正常日期 ( YYYY-MM-DD ) 转换为儒略日期

Conversion of Normal Date ( YYYY-MM-DD ) to Julian Date conversion in datastage

有没有将普通日期转换为儒略日期的函数。

我在 transformer 中使用了 JulianDayFromDate 函数,但没有得到预期的输出。

示例输入:

Date -- 2013-02-02 

输出应该是:

Julian Date-- 113033

(在数据库中我们可以进行如下查询)

select to_date(1900000+113033,'YYYYDDD') from dual

但是如何在 Datastage 中转换...?

也许你的期望是错误的—— 2456326 是 2013-02-02 的儒略日 - DataStage 函数有效。

查看 Wikipedia 文档以了解定义和计算

不确定您的 113033 是什么,但它不是所示日期的儒略日或儒略日。

要达到你想要的,你必须自己计算。 除了年份计算之外,您还可以使用 YeardayFromDate 来获取年份中的天数。 所以最后它会像

YearFromDate('2013-02-02') * 1000 - 1900000  +   YeardayFromDate('2013-02-02')

数据库对 Julian 日期使用不同的 "day zero" 值。没关系。关键是能够用它们进行日期(天)算术。 要转换回来,请使用 DateFromJulianDay() 函数。