【问题标题】:Query parameter date is changed to string in MuleMule中查询参数日期改为字符串
【发布时间】:2017-07-21 08:43:49
【问题描述】:

我有一个名为 modifiedDate 的查询参数在 RAML 文件中定义为仅日期,但是当我查看 Mule 调试器时,我看到 modifiedDate 2001-10-10 作为字符串数据类型。

RAML

...
queryParameters:
   modifiedDate:
   type: date-only
   example: "2001-10-10
...

这给我带来了一个问题,因为当我调用 SQL Server 存储过程时,它返回错误“无法将 NVARCHAR 转换为日期”。

我需要将 modifiedDate 以 YYYY-MM-DD 格式传递给 SQL Server,并作为 Date 数据类型才能正常工作,但我在 Mule 中将其转换为日期数据类型时也遇到了问题。

如何将 2001-10-10 更改为日期数据类型并保持值不变?

我正在使用 Anypoint Studio 6.2.2 和 Mule 3.8.3。

谢谢

【问题讨论】:

  • 您确定使用 SQL Server 吗?该错误似乎不是 sql server 错误消息,此外,此代码 declare @t table (dt date); insert into @t values(N'2001-10-10'), ('2001-10-10') 在 SQL Server 中工作正常

标签: sql-server mule date-conversion dataweave mel


【解决方案1】:

在 mule 中有几种方法可以将字符串解析为日期

数据编织:

%dw 1.0
%output application/java
---
{
    "modifiedDate" :  inboundProperties.'http.query.params'['modifiedDate'] as :date
}

无需指定日期格式即可工作

时髦

payload['modDate'] = 
    Date.parse("yyyy-MM-dd", message.getInboundProperty('http.query.params')['modifiedDate']);
payload;

这两者都会将值转换为 java.util.Date

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 2016-09-15
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    相关资源
    最近更新 更多