1.该函数返回当前的日期与时间,一般和dual伪表一起合作,
2.sysdate函数用于获取数据库所在的操作系统的当前时间值的.
我们可以使用NLS_DATE_FORMAT参数或者TO_CHAR函数来获得我们想要的SYSDATE日期格式,具体的格式代码如下:
Format Code Explanation
YEAR | Year, spelled out |
YYYY | 4-digit year |
MM | Month (01-12; JAN = 01). |
MON | Abbreviated name of month. |
MONTH | Name of month, padded with blanks to length of 9 characters. |
D | Day of week (1-7). |
DAY | Name of day. |
DD | Day of month (1-31). |
DDD | Day of year (1-366). |
DY | Abbreviated name of day. |
HH | Hour of day (1-12). |
HH12 | Hour of day (1-12). |
HH24 | Hour of day (0-23). |
MI | Minute (0-59). |
SS | Second (0-59). |
SSSSS | Seconds past midnight (0-86399). |
3.与sysdate不同,CURRENT_DATE()函数会返回数据库会话所设置的本地时区的当前日期.
4.设置nls_date_format的时间格式
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
另外请注意SYSDATE函数的类型并非是DATE类型,而是其特有的类型:
SQL> create table mytime(t1 date); Table created. SQL> insert into mytime values (sysdate); 1 row created. SQL> commit; Commit complete. SQL> select dump(t1), dump(sysdate), dump( current_date) from mytime; DUMP(T1) -------------------------------------------------------------------------------- DUMP(SYSDATE) -------------------------------------------------------------------------------- DUMP(CURRENT_DATE) -------------------------------------------------------------------------------- Typ=12 Len=7: 120,111,8,24,21,31,59 Typ=13 Len=8: 219,7,8,24,20,32,12,0 Typ=13 Len=8: 219,7,8,24,20,32,12,0 以上可以看到sysdate和current_date都属于TYPE=13,而普通DATE类型为TYPE=12
数据类型type=12代表DATE Valid date range from January 1, 4712 BC to December 31, 9999 AD.