select sysdate from dual  获取的系统时间,这个是获取的年 月 日  时  分 秒。
我只想获得 当前时间 的 年月 日 该怎么写 Sql 语句 求大神指点

解决方案 »

  1.   


    select to_char(sysdate,'yyyy-mm-dd') from dual;
      

  2.   


    正解,这是返回字符串格式的,如果想返回日期格式的还可以select trunc(sysdate) from dual;
      

  3.   

    大神们,  现在 我已经获取到 系统时间的 年月日了,a.dengjiriqi= select trunc(sysdate) from dual;  dengjiriqi这个字段 是 包括年 月  日 时 分 秒,  如何给dengjiriqi 一个格式,让他也获取到表里的年月日,而不要 时 分 秒,  这样 这个Where 条件才成立,,,,,,,,,
    我是自学SQL  所以 菜的很 ,
      

  4.   

    插入dengjiriqi的时候 直接赋值trunc(sysdate)不就可以了么
      

  5.   


    select *
    from t1
    where to_char(dengjiriqi,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')
      

  6.   

    楼上大神,这样我试过了。可以是可以 但是 但是 不是Date类型的么 我用to_Date为什么不可以呢?
      

  7.   

     to_char(dengjiriqi,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')
      
    这样 是必须  数据库里 有 这样的数据。  但是 我的数据表里 dengjiriqi  全部都是 带 年月日 时分秒的我主要查的目的 就是 说 查询 当前时间(年月日)与数据库表里 的dengjiriqi相符的数据 
      

  8.   

    dengjiriqi 这个是什么类型 具体存的数据是什么数据?
      

  9.   

    to_char(dengjiriqi,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')这个就是满足你可以查询精确到天的一种方法
      

  10.   

    你要以dengjiriqi的时间为基线还是以sysdate为准?我觉得你这个要先搞明白。
    如果要以dengjiriqi的时间为准,很简单呀,把系统时间改一下,这里有两种方法:
    其一,修改当前会话时间,这个只能在当前会话生效,alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
    其二,若是你想一劳永逸的话,windows可以去修改注册表:在家目录下增加一个值就可以了;linux可以去该内核参数:config若你要以sysdate时间为准,楼上的几种就可以满足了,这里就不在啰嗦咯。
      

  11.   

    就是说,我的数据库里面 有 dengjiriqi这个字段,里面的数据 是 带 年 月 日 时 分秒。 而我获得系统的时间规定只获得了年月日  现在 这个 where条件 就是  我想查询 当前时间(年月日)= dengjiriqi(年月日时分秒)但是 dengjiriqi里面 有时 分秒  所以这个条件不成立, 
    dengjiriqi 是DATE类型,     具体数据就是 例如2001-01-01 18:04:21 ,2001-01-01 18:04:22 ,等等  而我获得的当前时间 规定只能获取 年月日 也就是说 2001-01-01 ,现在 我想查询 2001-01-01 的所有时间的数据 该怎么查 
      

  12.   

    直接说查询具体某天的数据不就得了  说了这么说 和当前时间有什么关系呢select *
    from t1
    where to_char(dengjiriqi,'yyyy-mm-dd')='2001-01-01'