如何格式化oracle选择的时间格式的字段? 我有一个存储过程,我想格式化其中的时间字段: SELECT to_date(A.RECORDTIME,'yyyy-mm-dd') as RECORDTIME FROM HISTORYSTATE A执行后报:“文字与格式字符串不匹配”的错,请高手们指点如何解决,谢谢。在线等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 RECORDTIME是什么数据类型?如果是DATE型的话,用to_char好了SELECT to_char(A.RECORDTIME,'yyyy-mm-dd') as RECORDTIME FROM HISTORYSTATE A; 如果用char的话我选择出来的表就不能进行时间上的比较了。 就是你的类型转换格式不匹配。比如你的RECORDTIME是2008-12-13 6:15就不可以按那个格式转换。还有你RECORDTIME这个是date型的还是字符型的。date型的要to_char 没有其他办法了吗?如果to_char后我之后的操作就不好做了,有什么可以解决后面得到的Table中的RECORDTIME列的类型吗?我需要用此字段进行与当前时间的比较。 to_char之后,再to_date就可以了。to_date(to_char(dateCol,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') 关键你这个是字符型的还是date型的。如果是字符型的需要格式符合如果你的存储格式是这样的2008-10-23 6:15那用substr 函数截取前面十位substr(RECORDTIME,1,10);再转换。跟当前时间对比的话也可以用字符串转换substr(RECORDTIME,1,10)=to_date(sysdate,'yyyy-mm-dd') 格式化其中的时间字段=========================如果想以一定的格式数据日期类型的字段,用该用 to_char 而不是 to_date。date 类型的存储格式是一定的。我需要用此字段进行与当前时间的比较。=================================如果此字段也是 date 类型的,无需转换。 to_char(date类型,'yyyy-mm-dd hh24:mi:ss') to_char(date类型,'yyyy-mm-dd hh24:mi:ss') SYSDATE - RECORDTIME 就是已天为计量单位的Number类型呀,带小数;我用 Select Round(SYSDATE- InitiateDate)获取天数 RECORDTIME 字段可能有脏数据。建议这样:select to_date(case when length(to_char(a.RECORDTIME))<8 then '20081023' ELSE to_char(a.RECORDTIME) END,'YYYY-MM-DD')FROM HISTORYSTATE A; 如何判断表是否需要重组? 求帮助~~~~~~~ oracle 10.2.0.3补丁 oralce中实现类似many in many的语句 有没有好的oracle Application Express的参考书 Oracle模糊查询求解 谁有ojdbc14.jar驱动给我传一个 高手幫忙看一下,想實現有就先刪除再建的過程 急急,我改了数据库的IP怎么出现 没有监听器错误!! 请问在oracle存储过程中如何声明一个二维数组 OracleHome92ManageServer无法启动 求解,怎样将.shp(shapefile)地图文件导入oracle数据库,非常感谢!
SELECT to_char(A.RECORDTIME,'yyyy-mm-dd') as RECORDTIME FROM HISTORYSTATE A;
RECORDTIME是2008-12-13 6:15就不可以按那个格式转换。
还有你RECORDTIME这个是date型的还是字符型的。date型的要to_char
to_date(to_char(dateCol,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
如果你的存储格式是这样的2008-10-23 6:15
那用substr 函数截取前面十位substr(RECORDTIME,1,10);再转换。跟当前时间对比的话也可以用字符串转换
substr(RECORDTIME,1,10)=to_date(sysdate,'yyyy-mm-dd')
=========================
如果想以一定的格式数据日期类型的字段,用该用 to_char 而不是 to_date。date 类型的存储格式是一定的。我需要用此字段进行与当前时间的比较。
=================================
如果此字段也是 date 类型的,无需转换。
建议这样:select to_date(case when length(to_char(a.RECORDTIME))<8 then '20081023' ELSE to_char(a.RECORDTIME) END,'YYYY-MM-DD')
FROM HISTORYSTATE A
;