to_char(列名称,‘日期/时间格式’) to_date(列名称,‘日期/时间格式’)
oracle数据库中 时间存储的格式是 字符串类型(varchar)保存格式为 yyyy-MM-dd hh:mi
oracle 数据库 查询时间 hh:mi 默认是12小时制 hh24:mi 是24小时制 (分钟使用mi 区分月份的mm)
所以数据库如果存储的小时超过12 使用hh:mi 格式会报 小时值必须在1-12之间
https://zhidao.baidu.com/question/488517755.html 查询 to_char套To_date函数 to_char(to_date('2012-09-01', 'yyyy-mm-dd'),'yyyy'),
一、 日期格式图片在转换整个输入字符串之前结束 (where后跟的筛选条件 WHERE TO_DATE(colName,‘yyyy-mm-dd’) =‘2019-07-02’)
数据库格式因为是字符串类型(不知道跟这个有没有关系) 而且格式是 yyyy-mm-dd hh24:mi 所以to_date(,'这里的时间格式') 时间格式必须与数据的时间格式一致 所以 上面图片如果改成 yyyy-mmm-dd hh24:mi 就应该不会报错
如果有要套一层to_char()函数在转回字符串 也需要吧to_date()函数后面的日期格式写全
to_char函数也可能报这种错误 应该是因为 原来数据库存储的就是字符串 再转字符串会报错
二、 无效数字
应该是因为数据库类型本身就是字符串 在套字符串 格式还与 数据库存储的格式不对 报的错误(只是个人猜测)
只是用来记录自己数据库函数问题 记录自己遇到的问题