我正在使用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>
Run Code Online (Sandbox Code Playgroud)
在电子表格中,日期为欧元格式dd/mm/yy.问题是查询查询中的CAST函数将'date_field'从varchar转换为日期,但美国日期类型(月份优先,后一天).
例如,excel date_field列包含此值01/07/2011(2011年7月1日,因为它是Eurodate)但在查询查询中它将转换为{ts'2011-01-07 00:00:00'}.
有没有办法在查询查询中使用CAST来生成欧式日期?要在oracle中解决这个问题,你可以这样做:to_date(date_field,'DD:MM:YY'),但我不知道如何解决这个问题.