有sysdate这个函数。当在sql中直接写上这个名字,就会取得系统的时间。
但是我只想让它取到当天日子,不想到时间分秒,因为当我查询的时候总是查不出来。例如插入sysdate。然后对今天的数据进行查询就是查不到。好像是sysdate把今天的时间都算进去了。我查询就是今天的0时0分。就不好查到今天的日期了。
但是我只想让它取到当天日子,不想到时间分秒,因为当我查询的时候总是查不出来。例如插入sysdate。然后对今天的数据进行查询就是查不到。好像是sysdate把今天的时间都算进去了。我查询就是今天的0时0分。就不好查到今天的日期了。
--------
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
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
----
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
如:SELECT TO_CHAR(SYSDATE,'YYYYMMDD') FROM DUAL
那么需要怎么做
TO_CHAR(SYSDATE,'YYYY-MM-DD')
如果数据库字段是date类型的, 最好用date类型的处理函数trunc(或者round)。
from dual;
SELECT TRUNC(SYSDATE,'DAY') FROM DUAL