一、字符转日期
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]) 功能同上
八、获取最大日期
〉:select greatest(date_column) from TAB;