设为首页 收藏本站
查看: 1532|回复: 0

[经验分享] DB2日期和时间函数汇总

[复制链接]

尚未签到

发表于 2016-11-18 09:40:14 | 显示全部楼层 |阅读模式
  上一篇提到过在DB2中,可以通过SYSIBM.SYSDUMMY1、SYSIBM.DUAL获取寄存器中的值,也可以通过VALUES关键字获取寄存器中的值。则在这篇中,我们直接用VALUES关键字来看看这些函数。
  1.CURRENT DATE获取当前日期;CURRENT TIME获取当前时间;CURRENT TIMESTAMP获取当前时间戳(含年、月、日、时、分、秒);YEAR()获取年;MONTH()获取月;DAY()获取日; HOUR()获取小时;MINUTE()获取分钟;SECOND()获取秒;DATE()获取日期;TIME()获取时间;TIMESTAMP()获取时间戳。
以上函数参数可以是日期时间类型,也可以为日期时间格式的字符串。



--获取日期:
VALUES DATE(CURRENT TIMESTAMP);--2016/1/6
VALUES CURRENT DATE;--2016/1/6
--获取时间
VALUES TIME(CURRENT TIMESTAMP);--16:40:40
VALUES CURRENT TIME;--16:40:40
--获取时间戳
VALUES TIMESTAMP(CURRENT TIMESTAMP);--2016/1/6 16:40:40
VALUES CURRENT TIMESTAMP;--2016/1/6 16:40:40
VALUES sysdate;--2016/1/6 16:40:40
--获取当前年份
values year(current timestamp);--2016
--获取当前月
values month(current timestamp);--1
--获取当前日
values day(current timestamp);--6
--获取当前时
values hour(current timestamp);--16
--获取分钟
values minute(current timestamp);--40
--获取秒
values second(current timestamp);--40
--获取毫秒
values microsecond(current timestamp); --415269
  2、DB2时间可以直接加减带单位的时间长度。



VALUES TIMESTAMP('2016-1-06 12:18:12')+1 YEAR;--2017/1/6 12:18:12
VALUES TIMESTAMP('2016-1-06 12:18:12')+1 MONTH;--2016/2/6 12:18:12
VALUES TIMESTAMP('2016-1-06 12:18:12')+1 DAY;--2016/1/7 12:18:12
VALUES TIMESTAMP('2016-1-06 12:18:12')+1 HOUR;--2016/1/6 13:18:12
VALUES TIMESTAMP('2016-1-06 12:18:12')+1 MINUTE;--2016/1/6 12:19:12
VALUES TIMESTAMP('2016-1-06 12:18:12')+1 SECOND;--2016/1/6 12:18:13
VALUES TIMESTAMP('2016-1-06 12:18:12')+1 YEAR+1 MONTH+1 DAY+1 HOUR+1 MINUTE +1 SECOND ;--2017/2/7 13:19:13
VALUES TIMESTAMP('2016-1-06 12:18:12')-1 YEAR-1 MONTH-1 DAY-1 HOUR-1 MINUTE -1 SECOND ;--2014/12/5 11:17:11
  3、通过days()可以获取两个时间相差天数。



VALUES DAYS(CURRENT DATE)-DAYS(CURRENT DATE-1000 DAY);--1000
  4、通函数可以获取时间对应的周(月)。



--DAYNAME()返回指定日期的星期名,该星期名是由首字符大写、其他字符小写组成的英文名。
values DAYNAME(current timestamp);--Wednesday(当天为星期五)
--DAYOFWEEK()返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期日。
values DAYOFWEEK(current timestamp);--4(当天为星期三)
--DAYOFWEEK_ISO()返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期一。
values DAYOFWEEK_ISO(current timestamp);--3(当前为星期三)
--DAYOFYEAR()返回参数中一年中的第几天,用范围在 1-366 的整数值表示。
values DAYOFYEAR(current timestamp);--6
--MONTHNAME()对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January)。
values MONTHNAME(CURRENT TIMESTAMP);--January(当前为一月)
--WEEK()返回参数中一年的第几周,用范围在 1-54 的整数值表示。以星期日作为一周的开始。(参数可以为日期格式或者日期格式的字符串)
VALUES WEEK('2016-01-02');--1
VALUES WEEK('2016-01-03');--2
--WEEK_ISO()返回参数中一年的第几周,用范围在 1-54 的整数值表示。以星期一作为一周的开始。(参数可以为日期格式或者日期格式的字符串)
VALUES WEEK_ISO('2016-01-02');--53
VALUES WEEK_ISO('2016-01-03');--53
VALUES WEEK_ISO('2016-01-04');--1
  5、TIMESTAMPDIFF(n,CHAR(TIMESTAMP('2012-05-25 10:23:24')-TIMESTAMP('2012-05-25 10:20:24')))根据两个时间戳记之间的时差,返回由第一个参数定义的类型表示的估计时差。(整除部分,不会四舍五入)
  n=2:秒 ; n=4 :分; n=8:时;
  n=16 :天; n=32 :周;n=64:月;
  n=128 :季度; n=256:年;



VALUES TIMESTAMPDIFF(2,CHAR(TIMESTAMP('2016-01-06 12:23:24')-TIMESTAMP('2016-01-06 12:20:24'))); --180秒
VALUES TIMESTAMPDIFF(4,CHAR(TIMESTAMP('2016-01-06 12:23:24')-TIMESTAMP('2016-01-06 10:20:22'))); --123分钟
VALUES TIMESTAMPDIFF(8,CHAR(TIMESTAMP('2016-01-06 12:23:24')-TIMESTAMP('2016-01-06 10:20:22'))); --2小时
VALUES TIMESTAMPDIFF(16,CHAR(TIMESTAMP('2016-01-07 12:23:24')-TIMESTAMP('2016-01-06 15:20:22'))); --0天
VALUES TIMESTAMPDIFF(16,CHAR(TIMESTAMP('2016-01-07 12:23:24')-TIMESTAMP('2016-01-06 10:20:22'))); --1天
VALUES TIMESTAMPDIFF(32,CHAR(TIMESTAMP('2016-03-06 12:23:24')-TIMESTAMP('2016-01-06 10:20:22'))); --8周
VALUES TIMESTAMPDIFF(64,CHAR(TIMESTAMP('2016-03-06 12:23:24')-TIMESTAMP('2016-01-06 10:20:22'))); --2月
VALUES TIMESTAMPDIFF(128,CHAR(TIMESTAMP('2016-05-06 10:20:22')-TIMESTAMP('2016-02-06 10:20:22'))); --1季度
VALUES TIMESTAMPDIFF(256,CHAR(TIMESTAMP('2017-01-06 10:20:22')-TIMESTAMP('2016-01-06 10:20:22'))); --1年

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301974-1-1.html 上篇帖子: win7 DB2 控制中心乱码(转) 下篇帖子: DB2 V8 更新包带来的困扰
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表