set time on; 显示时间
set timing on; 显示执行时间
set sqlprompt"_date>" 显示日期和时间
alter session SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; 修改当前会话日期格式
SQL> set time on;
09:23:06 SQL> select sysdate from dual;
SYSDATE
--------------
10-7月 -14
09:23:14 SQL> set time off;
SQL> select sysdate from dual;
SYSDATE
--------------
10-7月 -14
SQL> set timing on;
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 2300 20
已用时间: 00: 00: 00.01
SQL> set sqlprompt"_date>"
10-7月 -14>select sysdate from dual;
SYSDATE
--------------
10-7月 -14
已用时间: 00: 00: 00.00
10-7月 -14>alter session SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
会话已更改。
已用时间: 00: 00: 00.00
2014-07-10 09:26:23>select sysdate from dual;
SYSDATE
-------------------
2014-07-10 09:26:43
已用时间: 00: 00: 00.00
显示日期和第该天是第几周:
SQL> select to_char(sysdate + level - 1, 'yyyy-mm-dd') dt,
to_char(sysdate + level - 1, 'iw') weeks from dual connect by level <= 15;
DT WE
---------- --
2014-01-03 01
2014-01-04 01
2014-01-05 01
2014-01-06 02
2014-01-07 02
2014-01-08 02
2014-01-09 02
2014-01-10 02
2014-01-11 02
2014-01-12 02
2014-01-13 03
2014-01-14 03
2014-01-15 03
2014-01-16 03
2014-01-17 03
15 rows selected.
显示工作周一到周五日期和第该天是第几周:
SQL> select to_char(sysdate + level - 1, 'yyyy-mm-dd') dt,
to_char(sysdate + level - 1, 'day') day,
to_char(sysdate + level - 1, 'iw') weeks from dual where to_char(sysdate + level - 1,
'd') not in (7,1) connect by level <= 15;
DT DAY WE
---------- --------- --
2014-01-03 星期五 01
2014-01-06 星期一 02
2014-01-07 星期二 02
2014-01-08 星期三 02
2014-01-09 星期四 02
2014-01-10 星期五 02
2014-01-13 星期一 03
2014-01-14 星期二 03
2014-01-15 星期三 03
2014-01-16 星期四 03
2014-01-17 星期五 03
11 rows selected.
来个全年的:
select to_char(sysdate+level,'yyyymmdd'),to_char(sysdate+level,'iw') from dual
connect by level <= (select to_date(to_char(sysdate,'yyyy')||'1231','yyyymmdd')-to_date(to_char(
sysdate,'yyyy')||'0101','yyyymmdd')+1 from dual);