如何将数据库中的datetime对象转换为字符串?

时间:2017-05-23 05:46:04

标签: mule dataweave

我遇到的问题是我在TIMESTAMP键中从数据库中获取datetime对象,但是当我将其转换为字符串时,我得到的不能强制错误。

 <db:select config-ref="Oracle_Configuration1" doc:name="Database">
            <db:parameterized-query><![CDATA[select * from DB.db_db1_mule_retry
WHERE ROWNUM <= 3]]></db:parameterized-query>
        </db:select>
        <dw:transform-message metadata:id="f7e98fea-4c1b-4ff7-86be-e927194d6413" doc:name="Transform Message">
            <dw:input-payload doc:sample="sample_data\list_map.dwl"/>
            <dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{
    source:  (payload[0].TIMESTAMP) as :datetime{format:"YYYY-MM-dd HH:mm:ss.S"} as :string{format:"YYYY-MM-dd HH:mm:ss.S"}
}

 ]]></dw:set-payload>
        </dw:transform-message>

数据库元素的值为“2017-10-01 23:23:23.0”

当我尝试使用

获取记录器组件中的值时,只是一个upadate

[Payload [0] .TIMESTAMP.stringValue()]我得到了这个

2017-03-01 15:39:33.0

由于

3 个答案:

答案 0 :(得分:1)

这应该有效:

payload[0].TIMESTAMP as :datetime as :string {format: "yyyy-MM-dd HH:mm:ss.S"}

答案 1 :(得分:0)

有效负载[0] .TIMESTAMP as:datetime {format:“yyyy-MM-dd HH:mm:ss.S”} as:string {format:“yyyy-MM-dd”}

希望这有帮助。

答案 2 :(得分:0)

您可以在数据库查询中的timestamp列上使用TO_CHAR。之后使用as:带有所需格式的字符串。