Coldfusion版本中返回不同的查询结果

Tim*_*own 4 coldfusion datetime coldfusion-9 coldfusion-10

我们在两个不同版本的ColdFusion(CF9和CF10)上运行cfquery.返回结果时,日期在不同版本中的格式不同.

查询是

SELECT TOP 100 CONVERT(DATE,Field1,121),Field2
FROM A_TABLE
Run Code Online (Sandbox Code Playgroud)

在CF9中,Field 1的回报看起来像2010-06-01.

在Cf10中,Field 1的返回看起来像 {ts '2010-06-01 00:00:00'}

还有其他人注意到这种差异吗?我们已经搜索了CF文档,并没有注意到任何提及此更改的内容.

Sco*_*roz 6

返回的数据是相同的.您在CF10中看到的是ColdFusion显示日期/时间对象的方式.(根据Miguel-F的反馈编辑)

每当你输出日期/时间,你可以(也应该)使用dateFormat(),timeformat()(和CF 10 datetimeformat()),以标准方式的日期/时间格式.

  • @Miguel-F:技术上`CONVERT(DATE,...)`*应该*在两个版本中都返回一个`java.sql.Date`对象.这只是CF选择如何显示它的问题.CF9必须使用[`Date.toString()`](http://docs.oracle.com/javase/6/docs/api/java/sql/Date.html#toString%28%29),这解释了为什么结果是"yyyy-mm-dd".我的猜测是CF10要么以不同的方式显示`java.sql.Date` -OR-可能查询返回一个`Timestamp`对象.你必须转储查询列类才能确定``queryName.field1 [1] .getClass().name #`. (2认同)