ORCL 时间
一、计算时间差
两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒):
天:
ROUND(TO_NUMBER(END_DATE - START_DATE))
小时:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)
分钟:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)
秒:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)
毫秒:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)
二、format格式化时间
ORACLE中:
select to_date('2007-06-28 19:51:20','yyyy-MM-dd HH24:mi:ss') from dual;
一般SQL中:
select to_date('2007-06-28 19:51:20','yyyy-MM-dd HH:mm:ss') from dual;
区别:
1、HH修改为HH24。
2、分钟的mm修改为mi。
24 小时的形式显示出来要用 HH24
三、Oracle 获取本周、本月、本季、本年的第一天和最后一天
--本周
select trunc(sysdate, 'd') + 1 from dual;
select trunc(sysdate, 'd') + 7 from dual;
--本月
select trunc(sysdate, 'mm') from dual;
select last_day(trunc(sysdate)) from dual;
--本季
select trunc(sysdate, 'Q') from dual;
select add_months(trunc(sysdate, 'Q'), 3) - 1 from dual;
--本年
select trunc(sysdate, 'yyyy') from dual;
select add_months(trunc(sysdate, 'yyyy'), 12) - 1 from dual;