一、字元轉日期
to_date(str, format); 以2013-06-06 19:30:45為例
Year:
yy two digits 兩位年 顯示值:13
yyy three digits 三位年 顯示值:013
yyyy four digits 四位年 顯示值:2013
Month:
mm number 兩位月 顯示值:06
mon abbreviated 字元集表示 顯示值:6月,若是英文版,顯示jun
month spelled out 字元集表示 顯示值:6月,若是英文版,顯示june
Day:
dd number 當月第幾天 顯示值:06
ddd number 當年第幾天 顯示值:06
dy abbreviated 當周第幾天簡寫 顯示值:星期三,若是英文版,顯示wed
day spelled out 當周第幾天全寫 顯示值:星期三,若是英文版,顯示Wednesday
ddspth spelled out, ordinal twelfth
Hour:
hh two digits 12小時進制 顯示值:07
hh24 two digits 24小時進制 顯示值:19
Minute:
mi two digits 60進制 顯示值:30
Second:
ss two digits 60進制 顯示值:45
其它
Q digit 季度 顯示值:2
WW digit 當年第幾周 顯示值:21
W digit 當月第幾周 顯示值:1
24小時格式下時間範圍為: 0:00:00 - 23:59:59....
12小時格式下時間範圍為: 1:00:00 - 12:59:59 ....
二、求某天為星期幾
>: select to_char(to_date('2013-06-06','yyyy-mm-dd'),'day') from dual;
>: 星期三
〉: select to_char(to_date('2013-06-06','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
〉: wednesday
三、求某天為當年的第幾天
〉:select TO_CHAR(SYSDATE,'DDD'),sysdate from dual;
四、next_day(date, d)
其中 date為日期,d參數為
Monday-Sunday, for format code DAY
Mon-Sun, for format code DY
1-7, for format code D
五、擷取上月,當月以及下月的第一天和最後一天
〉:SELECT Trunc(Trunc(SYSDATE, 'MONTH') - 1, 'MONTH') First_Day_Last_Month,
Trunc(SYSDATE, 'MONTH') - 1 / 86400 Last_Day_Last_Month,
Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month,
LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_MonthFROM dual;
六、日期計算
1、兩個日期間隔天
〉:select floor(sysdate - to_date('20130601','yyyymmdd')) from dual;
〉: 5
2、兩個日期間隔月
〉:select ceil(months_between(to_date('01-31-2013','MM-DD-YYYY'),to_date('06-06-2013','MM-DD-YYYY'))) "MONTHS" FROM DUAL;
3、兩個日期間隔年
〉:select floor(to_number(sysdate-to_date('2013-01-01 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual;
4、兩個日期間隔小時
〉:select floor(to_number(sysdate-to_date('2013-01-01 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual;
5、兩個日期間隔分鐘
〉:select floor(to_number(sysdate-to_date('2013-01-01 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual;
6、兩個日期間隔秒
〉:select floor(to_number(sysdate-to_date('2013-01-01 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual;
七、日期函數
1、round(date[, format]) 擷取指定日期的最近format格式對應的數字,如format為year,則為目前年的1月1日,即2013-01-01;format為month,則為目前月的1日,即2013-06-01;format為day,則為目前星期的星期天,即2013-01-01。
2、trunc(date[, format]) 功能同上