TO_CHAR和TO_DATE的用法
程序员文章站
2022-03-07 14:24:30
...
CREATE_TIME类型是Date
按正常的查询:select * from t_convert where create_time='2009-12-6 11:34:10'会出现“文字与格式不匹配”
只能进行类型转换:select * from t_convert t wher create_time=to_date('2009-12-6-11-34-10','yyyy-MM-dd HH24:mi :ss')
之所以这样写是因为 sql语句不区分大小写,MM和mm会被认为是相同格式的代码,所以Oracle用mi代替mm(分钟) 。
另外HH要写成HH24的形式(24小时的形式)。
下面我们看一下为什么格式是这样的:
select to_char(sysdate,'yyyy-MM-dd HH:mm
:ss') from dual /*时间不是24小时制 分钟显示月份*/
结果是:2010-10-08 01 :10 :08 此时10代表月份
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual /*时间是24小时制 分钟会显示月份*/
结果是:2010-10-08 13 :10 :25 此时10代表月份
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual /*时间是24小时制 分钟正常显示*/
结果是:2010-10-08 13 :35 :16
只有第三种是正确的