有sysdate这个函数。当在sql中直接写上这个名字,就会取得系统的时间。
但是我只想让它取到当天日子,不想到时间分秒,因为当我查询的时候总是查不出来。例如插入sysdate。然后对今天的数据进行查询就是查不到。好像是sysdate把今天的时间都算进去了。我查询就是今天的0时0分。就不好查到今天的日期了。

解决方案 »

  1.   

    SQL> SELECT TO_CHAR(SYSDATE,'YYYYMMDD') FROM DUAL;TO_CHAR(
    --------
    20070817SQL> create table a1(a date);表已创建。SQL> insert into a1 values(sysdate);已创建 1 行。SQL> commit;提交完成。SQL> select * from a1;A
    ----------
    17-8月 -07SQL> select * from a1 where to_CHAR(a,'YYYYMMDD')='20070817';A
    ----------
    17-8月 -07
      

  2.   

    关键是转换.
    SQL> SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;TO_C
    ----
    2007SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;TO_CHAR(SY
    ----------
    2007-08-17SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;TO_CHAR(SYSDATE,'YY
    -------------------
    2007-08-17 13:13:12
      

  3.   

    SQL> select trunc(sysdate) from dual;
      

  4.   

    SQL> SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;TO_C
    ----
    2007SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;TO_CHAR(SY
    ----------
    2007-08-17SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL
      

  5.   

    多看看TO_CHAR()  和TO_DATE()的运用,应该对你的问题有所帮助
      

  6.   

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

  7.   

    对sysdate进行转换
    如:SELECT TO_CHAR(SYSDATE,'YYYYMMDD') FROM DUAL
      

  8.   

    select *  from 表名 where  to_char(shijian,'yyyymmdd')='2007-08-18');
      

  9.   

    往数据库中插入值,想插入的sysdate没有时间,只是yyyy:mm:dd
    那么需要怎么做
    TO_CHAR(SYSDATE,'YYYY-MM-DD')
      

  10.   

    如果数据库字段是varchar2,用to_char。
    如果数据库字段是date类型的, 最好用date类型的处理函数trunc(或者round)。
      

  11.   

    select to_char(sysdate,'YYYY-MM-DD')
    from dual;
      

  12.   

    这个绝对好使!!
    SELECT TRUNC(SYSDATE,'DAY') FROM DUAL
      

  13.   

    select trunc(sysdate) from dual;