在数据阶段将正常日期 ( 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() 函数。
有没有将普通日期转换为儒略日期的函数。
我在 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() 函数。