数据库服务器_云主机ss_稳定性好

资讯 虚拟云 浏览

小编:我花了相当长的时间研究将JD Edwards(JDE)标准"cyddd"日期格式转换为人类可识别的公历日期的任何标准选项,但似乎没有现成的已知功能。 对于那些对JD Edwards日期概念不熟悉的人(如

我花了相当长的时间研究将JD Edwards(JDE)标准"cyddd"日期格式转换为人类可识别的公历日期的任何标准选项,但似乎没有现成的已知功能。

对于那些对JD Edwards日期概念不熟悉的人(如我),这里是一个简短的介绍

在JDE中,日期的格式是C-YY-DDD。(C表示世纪,淘客q群助手,YY表示两位数年份,DDD表示1到365之间的数字(或者366表示闰年)),因为JDE是在20世纪发明的(很明显),我相信他们开始使用这种格式,只支持从1900年开始的日期(据我所知,JDE不支持1900年之前的日期)。

这里有几个JDE的例子日期及其等效公历日期

115141–2015年5月21日

102317–2002年11月13日

99054–1999年2月23日

所以基本上如果JDE日期是5位数字,CYYDDD中的C是0(零),这表示该日期在20世纪(即1900年开始,2000年之前),全网云服务器,如果它是从1开始的(CYYDDD–century中的C),那么它是从2000年开始的21世纪。

乍看起来很难转换,但事实上,只需稍微挖掘一下就很简单,Microsoft Excel的日期函数可以很容易地转换它。

同样,使用标准日期函数,在SAP HANA中,通过在SAP HANA计算视图中创建计算列可以很容易地实现这一点。

这是我用作计算视图中所用表的输入数据的源数据。

JDE源系统中使用的数据类型是数字,JDE日期字段的精度为6,小数位数为0(零),如中所示下图

由于转换公式使用了一些数值计算,所以在将JDE数据加载到SAP HANA表时,我使用了数据类型为"integer"(INT)的源数据。

下图是表数据定义,我只使用了三列表,数据类型如前所述

所示,对于JDE日期字段,我使用了INT数据类型。我在这张表的顶部创建了一个简单的尺寸计算视图,我所要做的就是创建一个计算列,用正确的公式将JDE日期转换成公历日期列。

计算列的定义已经完成,下面是我用于JDE日期到公历日期转换的公式

日期(leftstr(string("UpdateDate"+1900000),视频云主机,4) )+int(rightstr(string("updatedatedate"),3))-1

将值1900000添加到JDE日期数据中–并去掉最左边的4个字符(将其转换为字符串后)得到正确的年份。在这之后,只需添加数字就可以从JDE日期得到正确的月份和日期。

正如您所看到的,从公式中可以看出,细分非常简单,它将输出按预期显示在计算列中。

列引擎date()函数的有趣功能只会生成所需的输出。在任何定制的环境中,它都可以根据需要灵活地计算值。

这里是日期预览中的输出,y云服务器,计算列位于适当位置。

第二,专用云服务器,如果DDD数字超过365(或366),正如您在PymtDate中的一些测试数据中看到的那样,它会根据DDD计算正确的年份数字,这对于标准日期数据来说是不正常的–但这里显示的是查看公式的工作原理,以及用于添加的date()函数的标准功能好几天了DDD预计在366以下。

同时-也可以使用标准公式,完全添加YYYYMMDD,也可以产生与预期相同的结果,虽然我觉得额外的连接对于加速计算是不必要的

date(leftstr(string("updatedatedate"+1900000),4)+'01'+'01')+int(rightstr(string("updatedatedate"),3))-1

文章来源:www.vmchk.com

 
你可能喜欢的: