Oracle 12c中时间戳转dd/mm/yyyy格式报错求正确SQL
解决ORA-01849错误的正确SQL语句
错误原因:你使用的hh格式掩码对应12小时制(范围1-12),但时间戳里的小时是22点(24小时制),超出范围触发了ORA-01849错误。
根据order_date的字段类型,提供两种解决方案:
如果
order_date是字符串类型(存储的是类似'15-JUL-18 22.04.11.587000000'的文本):SELECT TO_CHAR(TO_DATE(order_date, 'dd-mon-yyyy hh24:mi:ss.ff'), 'dd/mm/yyyy') FROM Titan_order;用
hh24匹配24小时制的小时数,ff匹配时间戳的微秒部分(如果不需要可以省略,但保留更准确)。如果
order_date本身是TIMESTAMP或DATE类型(数据库存储的是时间戳而非字符串):SELECT TO_CHAR(order_date, 'dd/mm/yyyy') FROM Titan_order;直接用
TO_CHAR格式化即可,无需额外转换为DATE类型。
内容的提问来源于stack exchange,提问作者Pandora
相关产品推荐
相关产品推荐

