ORACLE 日期时间

年处理:(19、20)
YY:与当前年份相同 例如:当前是2011 '11-01-10' --> 2010-01-11
RR:
1. 当前年份在0~49,RR在0~49 ,RR与当前年份的前两位相同 例如:当前是2011 '11-01-10' --> 2010-01-11
2. 当前年份在0~49,RR在50~99, RR在当前年份之前 例如:当前是2011 '11-01-55' --> 1955-01-11
3. 当前年份在50~99,RR在0~49 ,RR在当前年份之后 例如:当前是1999 '11-01-22' --> 2022-01-11
4. 当前年份在50~99,RR在50~99 ,RR与当前年份的前两位相同 例如:当前是1999 '11-01-75' --> 1975-01-11
毫秒显示
select to_date(systimestamp,'HH24:MI:SS.FF9') from dual;
定义日期显示格式
1. session级别:
alter session set nls_date format='yyyy-mm-dd hh24:mi:ss';
2. 语句级别:
select to_char(sysdate,'yyyy-mm-dd') from dual;
NEXT_DAY(date,'char'):查找date之后下一个指定星期几('char')的日期;char可能是英文,也可能为中文,取决于oracle字符集
时间类型
1. INTERVAL YEAR TO MONTH: 用年,月存储时间段
定义:loan_duration INTERVAL YEAR(3) TO MONTH);
赋值:
INSERT INTO time_example(load_duration) VALUES (INTERVAL '120' MONTH(3));
INSERT INTO time_example(load_duration) VALUES (INTERVAL '120' YEAR(3));
INSERT INTO time_example(load_duration) VALUES (INTERVAL '120-120' YEAR(3) TO MONTH);
2. INTERVAL DAY TO SECOND:用日,小时,分钟,秒存储时间段
定义:day_duration INTERVAL DAY(3) TO SECOND);
赋值:INSERT INTO time_example(day_duration) VALUES (INTERVAL '180' DAY(3));
INSERT INTO time_example(day_duration) VALUES (INTERVAL '4 5:12:10.222' DAY TO SECOND(3));
INSERT INTO time_example(day_duration) VALUES (INTERVAL '180 5' DAY(3) TO HOUR);
NEXT_DAY:
next_day(sysdate):明天
next_day(sysdate,1):今天之后的第一个周日
next_day(sysdate,2):今天之后的第一个周一
日期比较
If today is 2014-04-07
select * from transaction where transaction_date > to_date('2013','yyyy')
to_date('2013','yyyy') equal to to_date('2013-04-01','yyyy-mm-dd')

Comments

Popular posts from this blog

Nginx Proxy & Load Balance & LNMP

Snort+barnyard2+Snorby CentOS 6.5_64 Installation

ORACLE Error