有表A   通过过程会存储一个yyyy-mm-dd HH24:mi:ss的格式的时间  在字段B中   但是不知道过程哪块有问题  偶尔B存的时间变成了  yyyy-mm-dd 格式  后面的时分秒都没有   
希望做个触发器在更新的报错       但是不知道应该怎么判断时间格式  是yyyy-mm-dd HH24:mi:ss  还是yyyy-mm-dd  或者有什么其他办法解决?  过程好多 不确定是那个所以该过程就不考虑了。  表A    B                                                   C                D 
2019-01-01 00:23:59                    123            HH
2019-01-01 00:24:59                    124            SS
2019-01-01                                   125            CC              错误的

解决方案 »

  1.   


    ??没明白   我这是运行库问题  没法格式化呀   date本身可以说是没有显示格式的,或者说,显示的时候可以显示成各种你想要它显示的样子。打个比方讲,如果你想要让他显示成有分钟秒的样子,就可以这么着:to_char('时间字段','yyyy-mm-dd hh24:mi:ss')
      

  2.   


    ??没明白   我这是运行库问题  没法格式化呀   date本身可以说是没有显示格式的,或者说,显示的时候可以显示成各种你想要它显示的样子。打个比方讲,如果你想要让他显示成有分钟秒的样子,就可以这么着:to_char('时间字段','yyyy-mm-dd hh24:mi:ss')不是 这样的 就是库里存的少时间  
      

  3.   

    如果你用的是date类型的数据,实际上它保存的值一般用来说是不可见的,如果可见,那么就说明已经被各种手段格式化过,主题帖贴出来的那几行数据,是在什么工具中展示给你的?
      

  4.   

    也就是说,如果是date类型的数据,如果你将其格式化为:yyyy-mm-dd hh24:mi:ss的形式,那么它在工具中显示为2019-06-21与2019-06-21 00:00:00是等价的。
    如果确实是存储过程写入时间的时候,少了后面的时分秒,那么只有调查过程一条路,这个是程序逻辑的问题,不是oracle的问题。
      

  5.   

    oracle的date类型自带时分秒