各位,小弟遇到一个很郁闷的问题,关于sysdate
我现在有两张表,表里面都有一个字段是date类型,但是在插入数据的时候,一个表里面有时分秒,一个里面没有(说明:我是需要时分秒的),请问该怎么解决,谢谢啦!

解决方案 »

  1.   

    写insert语句时,日期类型字段用 to_date('2011-04-15 13:25:00','yyyy-mm-dd hh24:mi:ss'),
    如果是插入当前时间,直接写sysdate应该就可以显示时分秒,如果不行再转换一次试试
    to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
      

  2.   

    现在是我一个表用sysdate有时分秒,一个用sysdate没有时分秒,所以很郁闷啊
      

  3.   

    查询到秒
    select to_char(sysdate,'yyyy-MM-DD HH24:MM:SS') from dual
    查询到毫秒
    SELECT TO_CHAR(systimestamp,'yyyy-MM-DD HH24:MM:SSSSS') from dual至于你插入的找不到秒,你自己看下那些数据是不是你当下插入的,也许是历史数据,还有表结构,你插入sysdate的时候是否做了时间转化等,如trunc(sysdate,'dd')
      

  4.   

    两张表的字段类型是一样的,插入的时候也都是用的sysdate,为什么一个只有日期,一个有时分秒?
      

  5.   

    都没有么,还是几条没有?确认是date类型?不是varchar2?
      

  6.   

    我是两张表,都是date类型,是一张表有时分秒,一张没有时分秒
      

  7.   

    -- 你的日期字段显示成什么样的格式与 nls_date_formate和nls_date_language两个参数有关,
    -- 请参考:
    http://topic.csdn.net/u/20110413/22/4cebf992-5449-4643-95cb-4ddd484152ce.html
      

  8.   

    alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';-- 执行上面的语句,日期字段的时分秒就出来啦!
      

  9.   

    关键问题是那些表在服务器上,而且两个表插入基本上就一先后,不可能说是两个不同的session
      

  10.   


    -- 不管你是哪个session,只要字段是date类型,就有时、分、秒的信息,
    -- 你select date类型字段,之所以显示不出时、分、秒的信息是
    -- 因为跟nls_date_formate和nls_date_language两个参数有关,-- 还不明白?......
      

  11.   

    我是同一个数据库中的两张表啊,而且两张表插入数据的时间不会超过30秒,所以我不认为是session的问题
      

  12.   

    scott@RACDB> create table t( id number(18,0), name varchar2(20), cdate date);表已创建。scott@RACDB> insert into t(id,name,cdate) values(1,'luoyoumou1',sysdate);已创建 1 行。scott@RACDB> insert into t(id,name,cdate) values(2,'luoyoumou2',to_date('2011-04-15','yyyy-mm-dd'));已创建 1 行。-- 上面这条记录的时、分、秒将是:00:00:00,因为你没有指定时、分、秒,所以默认这些部分均为0!scott@RACDB> insert into t(id,name,cdate) values(3,'luoyoumou3',sysdate);已创建 1 行。scott@RACDB> commit;提交完成。scott@RACDB> select * from t;        ID NAME                                     CDATE
    ---------- ---------------------------------------- -------------------
             1 luoyoumou1                               2011-04-15 22:19:34
             2 luoyoumou2                               2011-04-15 00:00:00
             3 luoyoumou3                               2011-04-15 22:20:40scott@RACDB> alter session set nls_date_format='yyyy-mm-dd';会话已更改。scott@RACDB> select * from t;        ID NAME                                     CDATE
    ---------- ---------------------------------------- ----------
             1 luoyoumou1                               2011-04-15
             2 luoyoumou2                               2011-04-15
             3 luoyoumou3                               2011-04-15
      

  13.   

    顶15楼的,就是和系统显示参数和插入时候是否进行了to_char之类的操作有关。。
      

  14.   

    我确定两个表都是date类型,而且都是用的sysdate
      

  15.   

    难道插入date类型的还需要进行to_char然后再to_date转换???
      

  16.   

    INPUT_TIME         DATE,
    WARNING_DATE  DATE,
    这两个字段
      

  17.   

    可以使用select trunc(sysdate,'dd') from dual;语句看看效果
      

  18.   

    其实我知道怎么实现有时分秒的格式,我就是不知道为什么我的两张表的两个字段都是date类型,插入也都是用的sysdate,都在一个tablespace下面,而且两张表插入时间相近,我就搞不懂为什么一个有时分秒,一个没有???
      

  19.   

    -- 操:这么简单的问题,你就去纠节一辈子吧!
    -- 一个表里面有时分秒,一个里面没有,你到底是怎么看出来的?怎么知道:一个表里面有时、分、秒,而另一个表里没有?你的SQLG语句是什么?-- 我到底要看你能纠节到啥时候!
      

  20.   

    +1 这情况我也遇到过,插入的时候都是sysdate,但怎么都查不出时分秒来,原来是查询语句没写对,应该这样写:select to_char(tdate,'yyyy-mm-dd hh24:mi:ss') 时间 from t_tmp
      

  21.   

    今天,我也遇到了这个问题,而且是同一张表update的时候给字段赋值sysdateselect的时候to_char(field,'yyyy-mm-dd hh24:mi:ss')查询的结果确实有的字段没有时分秒的数据,示意数据如下:
    2012-8-30 9:39:04        2012-08-30 09:39:04
    2012-8-30                2012-08-30 00:00:00
    敢问如何是好呢?