本文是关于在Oracle数据库中,实现时间截取函数的方法。
具体如下所示:
实现过程
extract()截取时间值函数
--oracle中extract()函数从oracle 9i中引入,用于从一个date或者interval类型中截取到特定的部分
--语法如下:
EXTRACT (
{ YEAR | MONTH | DAY | HOUR | MINUTE | SECOND }| { TIMEZONE_HOUR | TIMEZONE_MINUTE }| { TIMEZONE_REGION | TIMEZONE_ABBR }
FROM { date_value | interval_value } )
实现方法
--我们只可以从一个date类型中截取 year,month,day(date日期的格式为yyyy-mm-dd);
select extract(year from date'2011-05-17') year from dual;
YEAR
----------
2011
select extract(month from date'2011-05-17') month from dual;
MONTH
----------
5
select extract(day from date'2011-05-17') day from dual;
DAY
----------
17
用extract()获取两个日期之间的具体时间间隔
select extract(day from dt2-dt1) day,extract(hour from dt2-dt1) hour,extract(minute from dt2-dt1) minute,extract(second from dt2-dt1) second
from (select to_timestamp('2011-02-04 15:07:00','yyyy-mm-dd hh24:mi:ss') dt1,to_timestamp('2011-05-17 19:08:46','yyyy-mm-dd hh24:mi:ss') dt2 from dual)
DAY HOUR MINUTE SECOND
---------- ---------- ---------- ----------
102 4 1 46
用ceil()获取两时间的相差天数
--获取a.stop_date_time与a.start_date_time之间的相差天数
ceil(a.stop_date_time - a.start_date_time)
SQL Server中用convert()获取日期时间字段的日期格式输出
--将日期时间字段b.OutDateTime以日期格式'1996-05-01'输出
convert(char(10),b.OutDateTime,21)
参考文章:
Oracle中extract()截取时间值函数