我正在使用 cfspreadsheet 从 Excel 工作表中读取值,然后我进行查询以对日期字段进行排序,因为 cfspreadsheet 返回的所有字段都是“VarChar”类型。这是代码:
<cfspreadsheet action = "read" query = "mySpreadsheet" src = "mp.xls" sheet="1" rows="2-178">
<cfquery name="mySpreadsheet2" dbtype="query">
select
(CAST(date_field as DATE)) as mydate
from mySpreadsheet order by mydate
</cfquery>
在电子表格中,日期采用欧元格式 dd/mm/yy。问题是查询查询中的 CAST 函数将 'date_field' 从 varchar 转换为日期,但美国类型的日期(第一个月份,后一天)。
例如,excel date_field 列包含此值 01/07/2011(2011 年 7 月一号,因为它是欧洲日期),但它在查询查询中被转换为 {ts '2011-01-07 00:00:00'}。
有没有办法在查询查询中使用 CAST 来生成欧式日期?要在 oracle 中解决这个问题,你可以这样做: to_date(date_field, 'DD:MM:YY') 但我不知道如何在这里解决这个问题。