zoukankan      html  css  js  c++  java
  • DB2日期和时间函数汇总

      上一篇提到过在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年
  • 相关阅读:
    aspnet mvc 中 跨域请求的处理方法
    Aspnet Mvc 前后端分离项目手记(三)关于restful 风格Url设计
    Aspnet Mvc 前后端分离项目手记(二)关于token认证
    Aspnet Mvc 前后端分离项目手记(一) 关于跨域问题(还有前言)
    31 | 误删数据后除了跑路,还能怎么办?
    30 | 答疑文章(二):用动态的观点看加锁
    29 | 如何判断一个数据库是不是出问题了?
    28 | 读写分离有哪些坑?
    27 | 主库出问题了,从库怎么办?
    26 | 备库为什么会延迟好几个小时?
  • 原文地址:https://www.cnblogs.com/longjshz/p/5106440.html
Copyright © 2011-2022 走看看