oracle设置NLS_DATE_FORMAT参数实例

2014-01-09

有时候我们根据时间段查询需要精确到秒,但是sqlPlus默认情况下只能看到年月日。通过设置NLS_DATE_FORMAT参数,我们可以实现精确的时间查询。

SQL> select sysdate from dual;
SYSDATE
--------------
09-1月 -14

SQL> select TO_DATE( '2014-01-04 06:30:00', 'YYYY-MM-DD HH24:MI:SS') from dual;
TO_DATE('2014-
--------------
04-1月 -14

SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
Session altered.

SQL> select sysdate from dual;
SYSDATE
-------------------
2014-01-09 09:59:06

SQL> select TO_DATE( '2014-01-04 06:30:00', 'YYYY-MM-DD HH24:MI:SS') from dual;

TO_DATE('2014-01-04
-------------------
2014-01-04 06:30:00

注意这个参数不能通过ALTER SYSTEM命令来修改:
You can alter the default value of NLS_DATE_FORMAT by:
■ Changing its value in the initialization parameter file and then restarting the instance
■ Using an ALTER SESSION SET NLS_DATE_FORMAT statement

根据sysdate计算日期:
半小时前
select sysdate-1/48 from dual;
1小时前
select sysdate-1/24 from dual;
1天前
select sysdate-1 from dual;
9点-10点
select create_time from t1 where create_time between TO_DATE( '2014-01-04 09:00:00', 'YYYY-MM-DD HH24:MI:SS') and TO_DATE( '2014-01-04 10:00:00', 'YYYY-MM-DD HH24:MI:SS');

分类:数据库 | 标签: |

相关日志

评论被关闭!