Oracle date timestamp 毫秒 - 时间函数总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle date timestamp 毫秒 - 时间函数总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3712字,纯文字阅读大概需要6分钟。
内容图文
![Oracle date timestamp 毫秒 - 时间函数总结](/upload/InfoBanner/zyjiaocheng/524/368c71663e0d42e6a8e6ec6a6bffd2ad.jpg)
yyyy-mm-dd hh24:mi:ss.ff 年-月-日 时:分:秒.毫秒
--上一月,上一年
select add_months(sysdate,-1) last_month,add_months(sysdate,-12) last_year from dual;
--下一月,下一年
select add_months(sysdate,1) last_month,add_months(sysdate,12) last_year from dual;
--当月最后一天
select LAST_DAY(sysdate) from dual;
--下周日期
select next_day(sysdate,‘星期五‘) "下周五" from dual;
select next_day(sysdate, ‘Friday‘) "Next Friday" from dual;
select next_day(sysdate, 4) from dual;
如果你不确定自己的时区或者你担心从一个时区移植到另一个时区时,SQL语句会出错,Oracle还允许你用数字的形式来表示工作日。
但是要记得一点:1表示的是周日,2表示的是周一,3表示的是周二,依此类推。
--固定日期一天
select * from account a where a.applytime>= to_date(‘2011-02-26‘,‘yyyy-mm-dd‘) and a.applytime< to_date(‘2011-02-27‘,‘yyyy-mm-dd‘);
--前天一天
select * from account a where a.applytime>= to_date(to_char(sysdate-2,‘yyyy-mm-dd‘),‘yyyy-mm-dd‘) and a.applytime< to_date(to_char(sysdate-1,‘yyyy-mm-dd‘),‘yyyy-mm-dd‘);
昨天一天
select * from dxw_tmp a where a.applytime>= to_date(to_char(sysdate-1,‘yyyy-mm-dd‘),‘yyyy-mm-dd‘) and a.applytime< to_date(to_char(sysdate,‘yyyy-mm-dd‘),‘yyyy-mm-dd‘);
--今天一天
select * from account a where a.applytime>= to_date(to_char(sysdate,‘yyyy-mm-dd‘),‘yyyy-mm-dd‘) and a.applytime< to_date(to_char(sysdate+1,‘yyyy-mm-dd‘),‘yyyy-mm-dd‘);
上月第一天
select to_date(to_char(add_months(sysdate,-2)+1,‘yyyy-mm-dd‘),‘yyyy-mm-dd‘) from dual ;
上月最后一天
select to_date(to_char(add_months(sysdate,-1),‘yyyy-mm-dd‘),‘yyyy-mm-dd‘) from dual;
select * from account a where a.applytime>= to_date(to_char(add_months(sysdate,-2)+1,‘yyyy-mm-dd‘),‘yyyy-mm-dd‘) and a.applytime<= to_date(to_char(add_months(sysdate,-1),‘yyyy-mm-dd‘),‘yyyy-mm-dd‘);
select to_date(to_char(add_months(sysdate,-2),‘yyyy-mm-dd‘),‘yyyy-mm-dd‘) from dual;
select to_date(to_char(add_months(sysdate,-3)+1,‘yyyy-mm-dd‘),‘yyyy-mm-dd‘) from dual ;
--trunc 截取日期
--当天零点
select trunc(sysdate,‘dd‘) from dual;
--当月一号
select trunc(sysdate,‘mm‘) from dual;
--本年一月一号
select trunc(sysdate,‘yyyy‘) from dual;
--可以根据需要自己去截取
关于毫秒:
Oracle 毫秒的存储必须字段类型为 timestamp(6) –数字表示存储的毫秒位数
--当前毫秒级时间
select to_char(current_timestamp,‘yyyy-mm-dd hh24:mi:ss.ff6‘) from dual;
--字符串转为 timestamp类型
select to_timestamp(‘2012-02-03 10:29:46.453234‘,‘yyyy-mm-dd hh24:mi:ss.ff6‘) from dual;
--timestamp转为字符型
select to_char(systimestamp,‘yyyy-mm-dd hh24:mi:ss.ff6‘) from dual;
PS: ff后面的数字表示获得的毫秒位数,默认是6;一般ff3 获得三位毫秒数。
如果你想把DATE类型转换成TIMESTAMP类型,就使用CAST函数。
select cast(sysdate as timestamp) from dual;
但是值得注意的是:在转换后的时间段尾部有了一段“.000000”。这是因为从date转换过来的时候,没有小数秒的信息,缺省为0。而且显示格式是按照参数NLS_TIMESTAMP_FORMAT定的缺省格式显示。当你把一个表中date类型字段的数据移到另一个表的timestamp类型字段中去的时候,可以直接写INSERT SELECT语句,oracle会自动为你做转换的。
注意: to_char函数支持date和timestamp,但是trunc却不支持TIMESTAMP数据类型。这已经清楚表明了在当两个时间的差别极度重要的情况下,使用TIMESTAMP数据类型要比DATE数据类型更确切。
还值得一提的是:毫秒的显示精度是6位,不过有效位是3位,即最大值达到999,满1000ms就进为1s。当然你想保存6位毫秒也是有办法的:
insert 值指定六位:to_timestamp(‘2012-02-03 10:29:46.453234‘,‘yyyy-mm-dd hh24:mi:ss.ff6‘)
Oracle date timestamp 毫秒 - 时间函数总结
标签:一点 -- ext sql 第一天 年-月 top 字符型 默认
本文系统来源:https://www.cnblogs.com/liuys635/p/12992803.html
内容总结
以上是互联网集市为您收集整理的Oracle date timestamp 毫秒 - 时间函数总结全部内容,希望文章能够帮你解决Oracle date timestamp 毫秒 - 时间函数总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。