Coldfusion WDDX的最短日期

Coldfusion WDDX的最短日期,coldfusion,coldfusion-9,wddx,Coldfusion,Coldfusion 9,Wddx,我最近让一个用户输入了6/13/204的数据。SQLServer2008愉快地存储了日期。该日期后来被检索并序列化为WDDX。它被编码为 <field name='BASECYCLEDATE'><dateTime>204-6-13T0:0:0-8:0</dateTime></field> 614: 615 : 616 : 我的问题是,WDDX中反序列化日期的最小日期是多少?SQL Server将日期存储为0204。显然,ColdF

我最近让一个用户输入了6/13/204的数据。SQLServer2008愉快地存储了日期。该日期后来被检索并序列化为WDDX。它被编码为

<field name='BASECYCLEDATE'><dateTime>204-6-13T0:0:0-8:0</dateTime></field>

614:
615 :   
616 :   

我的问题是,WDDX中反序列化日期的最小日期是多少?

SQL Server将日期存储为0204。显然,ColdFusion将0204转换为204。如果用户开始经常这样做,我将为输入的数据添加额外的检查。如果有必要,我会的

 <cfif year(basecyledate) LT 1000>
     ...
 </cfif>

...
编辑:

为了回答您最初的问题,该编码字符串是错误的。序列化的日期应该是格式的,这意味着它们应该有四位数的年份。粗略的测试表明
cfwddx
拒绝任何非四位数年份,即<1000或>9999年


SQL Server将日期存储为0204


否,sql server不将日期存储为格式化字符串。在内部,它们存储为数字。暂时忽略验证,原因完全在CF方面。将该日期序列化为wddx字符串时,CF无法生成ISO8601要求的前导零。因此,结果字符串
204-6-13T0:0:0-8:0
的格式不正确,这就是反序列化失败的原因。这就是说,由于该日期范围对您的应用程序无效,您可能应该添加一些验证来拒绝像这样的无效值。

该编码字符串是错误的。好吧,它应该是格式的,意思是四位数的年份。粗略的测试表明,
cfwddx
拒绝任何非四位数的年份,即年份<1000或>9999。马逃走后,你是否关闭了特定的谷仓门?你为什么还要使用WDDX?我必须维护一个非常旧的Web服务将日期存储为0204否,sql server不将日期存储为格式化字符串。在内部,它们存储为数字。暂时忽略验证,原因完全在CF方面。将该日期序列化为wddx字符串时,CF无法生成所需的前导零。因此,结果字符串的格式不正确,这就是反序列化失败的原因。RE:如果有必要,我会的,因为该日期范围对您的申请无效,您可能无论如何都应该这样做。我想用您的评论作为答案,因为它比我自己的更完整和正确
614 :   </cfscript>
615 :   
616 :   <cfwddx action = "wddx2cfml" input = "#qryLabel.Config#" output = "stDat">
 <cfif year(basecyledate) LT 1000>
     ...
 </cfif>