2009年6月17日 星期三

Oracle Date function to_date()

--更改日期顯示的格式
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD';

--找日期
select * from ph
where to_char(sdate,'YYYY-MM-DD') = '2009-06-02'

--顯示日期
select to_char(sdate,'YYYY-MM-DD') from ph
group by to_char(sdate,'YYYY-MM-DD')

--between
select * from ph
where sdate between to_date('2009-04-19 23:40:00','YYYY/MM/DD HH24:MI:SS')
and to_date('2009-04-20 00:40:10','YYYY/MM/DD HH24:MI:SS')

--日期加一天
select sysdate+1 from dual
-> 2009-06-18 15:37:29


select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') FROM DUAL
-> 2007/09/20 15:24:13

--得到日期差
select trunc(sysdate - to_date('20070901','yyyymmdd')) aa from dual;

--得到小時差
select trunc((sysdate - to_date('20070901','yyyymmdd'))*24) aa from dual;

--得到分鐘差
select trunc((sysdate - to_date('20070901','yyyymmdd'))*24*60) aa from dual;

--得到秒差
select trunc((sysdate - to_date('20070901','yyyymmdd'))*24*60*60) aa from dual;

--日期加小時
select to_char(sysdate+2/24,'YYYY/MM/DD HH24:MI:SS') aa from dual;

--日期加分鐘
select to_char(sysdate+10/1440,'YYYY/MM/DD HH24:MI:SS') aa from dual;

--日期加秒鐘
select to_char(sysdate+10/86400,'YYYY/MM/DD HH24:MI:SS') aa from dual;



常用之日期格式

日期格式 說明
------------------------------------------------------------------------
YYYY/MM/DD -- 年/月/日
YYYY -- 年(4位)
YYY -- 年(3位)
YY -- 年(2位)
MM -- 月份
DD -- 日期
D -- 星期
-- 星期日 = 1 星期一 = 2 星期二 = 3
-- 星期三 = 4 星期四 = 5 星期五 = 6 星期六 = 7

DDD -- 一年之第幾天
WW -- 一年之第幾週
W -- 一月之第幾週
YYYY/MM/DD HH24:MI:SS -- 年/月/日 時(24小時制):分:秒
YYYY/MM/DD HH:MI:SS -- 年/月/日 時(非24小時制):分:秒
J -- Julian day,Bc 4712/01/01 為1
RR/MM/DD -- 公元2000問題

沒有留言: