Oracle日期函数【timestamp】

浏览: 1566

TIMESTAMP数据类型:是DATE的扩展,可以存储年、月、日、小时、分钟、秒,同时还可以存储秒的小数部分。


timestamp以日期格式输出表示 :

select TO_CHAR(to_timestamp('2009-7-30','yyyy-mm-dd hh24:mi:ss') ,'YYYY-MM-DD HH24:MI:SS') from dual;

结果为:2009-07-30 00:00:00


date格式的时间差,以秒为单位:

select (to_date('2009-7-30', 'yyyy-mm-dd hh24:mi:ss') - to_date('2009-7-29', 'YYYY-MM-DD HH24:mi:ss')) * 86400 as "itvtime" from dual;

结果为:86400


timestamp格式求时间差,以秒为单位:

select (to_date(to_char(to_timestamp('2009-7-30', 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') -to_date(to_char(to_timestamp('2009-7-29', 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'),'YYYY-MM-DD HH24:mi:ss')) * 86400 as "Mtime" from dual;

结果为:86400


求任意timestamp格式的时间戳,据1970年01月01日的毫秒数

select (to_date(to_char(to_timestamp('2009-7-30', 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') -to_date('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:mi:ss')) * 86400000 from dual;

结果为:1248912000000


根据日期求当月天数:

select add_months(trunc(to_date('2009-9', 'yyyy-mm'), 'mm'), 1) - trunc(to_date('2009-9', 'yyyy-mm'), 'mm') from dual;

结果为:30

推荐 1
本文由 GeorgeYao 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

格式乱拉,可以调整一下
好的,这SQL格式化就成这样了

要回复文章请先登录注册