java - 如何通过 Oracle 函数 to_date() 将 java 格式的 ddMMyyyyHmmss 字符串转换为日期?

标签 java sql oracle simpledateformat to-date

例如有一行字符串0106201395810(或31052013155754),符合new SimpleDateFormat("ddMMyyyyHmmss")的格式,即第一种情况,2013 年 6 月 1 日,9 小时 58 分 10 秒to_date ('0106201395810','DDMMYYYYHH24MISS') 的变体不适合,因为它涉及 HH24 中的两个字符。

最佳答案

您可以尝试按照这些行重新组合字符串,使零出现在正确的位置 - 并使用 DDMMYYYYHH24MISS 格式

to_date(
 case length(input)
  when 14 THEN -- the length is OK: this has 2 digits at the hour
     input
  when 13 THEN -- length is one short, have to add one '0'
     substr(input,0,8) || '0' || substr(input, 9)
  END,
'DDMMYYYYHH24MISS')

虽然我必须说,这很丑陋,并且可能具有“不太理想”的性能……我宁愿更改 Java 端格式,因为这种格式显然不是标准一。个人主义有时可能很好——显然情况并非如此。从长远来看,这只会造成痛苦......

关于java - 如何通过 Oracle 函数 to_date() 将 java 格式的 ddMMyyyyHmmss 字符串转换为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18998931/

相关文章:

java - 如何在 java 中以相同的顺序打乱两个数组

sql - 查找多个点之间的距离 - 纬度/经度

sql - 加入有限子查询?

sql - 如何在SQL中同时使用多个count和多个group by?

java - oracle.jdbc.ReadTimeout 和 Socket 读取超时

mysql - 如果没有它就可以完成别名,那么在 SQL 中使用 "AS"关键字有什么意义?

java - 在 JavaFX 中的选项卡中实现绘图区域

java - 安卓 GoogleMap getProjection() 不工作

Java Compiler 接受泛型方法引用,但在作为变量传递时不接受

甲骨文数据库 : how to store function result into variable inside procedure