我是ESQL新手,正在将XML转换为Cobol复制本,其中一个XML元素是日期,但在字符串中的格式为yyyymmdd例如20140908
我需要从字符串中提取年、月和日,也要用数字表示
05 orderdate
10 orderyear PIC 9(4)
10 ordermonth PIC 9(2)
10 orderday PIC 9(2)我可以说下面这样的话:
DECLARE Orderdate INTEGER = CAST(INPUTROOT.XMLNS.ORDER.Order_Date as DateTime Format 'yyyymmdd');
SET OUTPUTROOT.DFDL.ORDERDATE.orderYear = EXTRACT(Year from Orderdate);
SET OUTPUTROOT.DFDL.ORDERDATE.orderMonth = EXTRACT(Month from Orderdate);
SET OUTPUTROOT.DFDL.ORDERDATE.orderDay = EXTRACT(Day from Orderdate);非常感谢
J
发布于 2014-09-19 13:40:54
下面的代码对我来说很好,但当然我们可以使用substring,这样会更容易一些。
DECLARE ORDERDATE DATE;
DECLARE ORDERYEAR CHARACTER;
DECLARE ORDERMONTH CHARACTER;
DECLARE ORDERDAY CHARACTER;
SET ORDERDATE = CAST(InputRoot.XMLNSC.p:Order.p:Requested_Provision_Date AS DATE Format 'yyyymmdd');
SET ORDERYEAR = EXTRACT(YEAR FROM ORDERDATE);
SET ORDERMONTH = EXTRACT(MONTH FROM ORDERDATE);
SET ORDERDAY = EXTRACT(DAY FROM ORDERDATE);
SET OutputRoot.DFDL.ORDERS.ORDER_DATE.ORDER_YEAR = CAST(ORDERYEAR AS INTEGER);
SET OutputRoot.DFDL.ORDERS.ORDER_DATE.ORDER_MONTH = CAST(ORDERMONTH AS INTEGER);
SET OutputRoot.DFDL.ORDERS.ORDER_DATE.ORDER_DAY = CAST(ORDERDAY AS INTEGER);https://stackoverflow.com/questions/25718333
复制相似问题