代码改变世界

【Oracle】日期和字符转换——to_char

2010-05-13 15:04  Peter Jin  阅读(1164)  评论(0编辑  收藏  举报

近段时间在做一个ColdFusion+Oracle的小项目,当在页面显示数据详细信息的时候,遇到一个很怪的问题。情况是这样的:
现数据库(Oracle)中有一张表orderInfo,里面有一个Date类型的字段orderDate,现需要将字段orderDate的值按照格式"2010/05/13 14:22:11"输出到页面上。

很简单嘛,很快就写好了。如下:

SQL文:

1 SELECT orderDate FROM orderInfo

 
页面处理:

1 <cfoutput>
2 <!---start 从数据库中取得数据 start --->
3   ……
4 <!---end 从数据库中取得数据 end --->
5 
6 <cfset orderdate = #dateformat(qorder.orderDate,'yyyy/mm/dd')# & ' ' & #TimeFormat(qorder.orderDate, "HH:mm:ss")#>
7 
8 </cfoutput>

 

 

运行页面一看,怪了,怎么不对啊,输出结果:2010/05/13 00:00:00。Oracle很怪,时间数据在数据库是看不到正确的具体时间的,没办法,只好用Oracle数据库转换时间的函数进行转换了。如下:

1 1 SELECT
2 2       to_char(orderDate,'yyyy/mm/dd hh24:mi:ss'AS orderDate
3 3 FROM
4 4       orderInfo
5 


好了,问题算是解决了,不过,为什么用ColdFusion转换时间的方法就不可以呢?怪!