zoukankan      html  css  js  c++  java
  • db2日期和时间常用汇总

    1、db2可以通过SYSIBM.SYSDUMMY1、SYSIBM.DUAL获取寄存器中的值,也可以通过VALUES关键字获取寄存器中的值。

    SELECT 'HELLO DB2' FROM SYSIBM.SYSDUMMY1;--HELLO DB2
    SELECT 'HELLO DB2' FROM SYSIBM.DUAL;--HELLO DB2
    VALUES 'HELLO DB2';--HELLO DB2

    2、CURRENT DATE获取当前日期;CURRENT TIME获取当前时间;CURRENT TIMESTAMP获取当前时间戳(含年、月、日、时、分、秒)。

    VALUES CURRENT DATE--2012/5/25 0:00:00;
    VALUES CURRENT TIME--20:48:53;
    VALUES CURRENT TIMESTAMP--2012/5/25 20:49:12;

    3、YEAR()获取年;MONTH()获取月;DAY()获取日;
         HOUR()获取小时;MINUTE()获取分钟;SECOND()获取秒;
         DATE()获取日期;TIME()获取时间;TIMESTAMP()获取时间戳。
         以上函数参数可以是日期时间类型,也可以为日期时间格式的字符串。

    VALUES YEAR(CURRENT TIMESTAMP);/*2012*/  VALUES YEAR('2012-05-25 21:18:12');/*2012*/
    VALUES MONTH(CURRENT TIMESTAMP);/*5*/  VALUES MONTH('2012-05-25 21:18:12');/*5*/ 
    VALUES DAY(CURRENT TIMESTAMP);/*25*/  VALUES DAY('2012-05-25 21:18:12');/*25*/
    VALUES HOUR(CURRENT TIMESTAMP);/*21*/  VALUES HOUR('2012-05-25 21:18:12');/*21*/
    VALUES MINUTE(CURRENT TIMESTAMP);/*18*/  VALUES MINUTE('2012-05-25 21:18:12');/*18*/
    VALUES SECOND(CURRENT TIMESTAMP);/*12*/   VALUES SECOND('2012-05-25 21:18:12');/*12*/
    VALUES DATE(CURRENT TIMESTAMP);/*2012/5/25 0:00:00*/  VALUES DATE('2012-05-25 21:18:12');/*2012/5/25 0:00:00*/
    VALUES TIME(CURRENT TIMESTAMP);/*21:18:12*/  VALUES TIME('2012-05-25 21:18:12');/*21:18:12*/
    VALUES TIMESTAMP(CURRENT TIMESTAMP);/*2012/5/25 21:18:12*/  VALUES TIMESTAMP('2012-05-25 21:18:12');/*2012/5/25 21:18:12*/

    4、db2时间可以直接加减带单位的时间长度。

    VALUES TIMESTAMP('2012-5-25 21:18:12')+1 YEAR;--2013/5/25 21:18:12
    VALUES TIMESTAMP('2012-5-25 21:18:12')+1 MONTH;--2012/6/25 21:18:12
    VALUES TIMESTAMP('2012-5-25 21:18:12')+1 DAY;--2012/5/26 21:18:12
    VALUES TIMESTAMP('2012-5-25 21:18:12')+1 HOUR;--2012/5/25 22:18:12
    VALUES TIMESTAMP('2012-5-25 21:18:12')+1 MINUTE;--2012/5/25 21:19:12
    VALUES TIMESTAMP('2012-5-25 21:18:12')+1 SECOND;--2012/5/25 21:18:13
    VALUES TIMESTAMP('2012-5-25 21:18:12')+1 YEAR+1 MONTH+1 DAY+1 HOUR+1 MINUTE +1 SECOND ;--2013/6/26 22:19:13
    VALUES TIMESTAMP('2012-5-25 21:18:12')-1 YEAR-1 MONTH-1 DAY-1 HOUR-1 MINUTE -1 SECOND ;--2011/4/24 20:17:11

    5、通过days()可以获取两个时间相差天数。

    VALUES DAYS(CURRENT DATE)-DAYS(CURRENT DATE-1000 DAY);--1000 

    6、TO_CHAR()把时间转换成指定格式的字符串类型(db2较低版本不支持)。
         “YYYY-MM-DD HH:MI:SS” 十二小时制;“YYYY-MM-DD HH24:MI:SS” 二十四小时制。
         (“YYYY-MM-DD hh:mm:ss”不会报错,但是mm值取的是月的值。)

    SELECT TO_CHAR(TIMESTAMP('2012-5-25 21:18:12'),'YYYY-MM-DD') FROM SYSIBM.DUAL;--2012-05-25
    SELECT TO_CHAR(TIMESTAMP('2012-5-25 21:18:12'),'YYYY-MM-DD HH:MI:SS') FROM SYSIBM.DUAL;--2012-05-25 09:18:12
    SELECT TO_CHAR(TIMESTAMP('2012-5-25 21:18:12'),'YYYY-MM-DD HH24:MI:SS') FROM SYSIBM.DUAL;--2012-05-25 21:18:12
    (SELECT TO_CHAR(TIMESTAMP('2012-5-25 21:18:12'),'YYYY-MM-DD HH24:MM:SS') FROM SYSIBM.DUAL;--2012-05-25 21:05:12)

    7、DAYNAME()返回指定日期的星期名,该星期名是由首字符大写、其他字符小写组成的英文名。

    values DAYNAME(current timestamp)--Friday(当天为星期五)

    8、DAYOFWEEK()返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期日。

    values DAYOFWEEK(current timestamp);--6(当天为星期五)

    9、DAYOFWEEK_ISO()返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期一。

    values DAYOFWEEK_ISO(current timestamp);--5(当前为星期五)

    10、DAYOFYEAR()返回参数中一年中的第几天,用范围在 1-366 的整数值表示。

    values DAYOFYEAR(DATE('2012-02-01'));--32

    11、MONTHNAME()对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January)。

    values MONTHNAME(CURRENT TIMESTAMP);--May(当前为五月)

    12、WEEK()返回参数中一年的第几周,用范围在 1-54 的整数值表示。以星期日作为一周的开始。(参数可以为日期格式或者日期格式的字符串)

    VALUES WEEK('2012-05-25')--21

    13、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('2012-05-25 10:23:24')-TIMESTAMP('2012-05-25 10:20:24')));--180秒
    VALUES TIMESTAMPDIFF(4,CHAR(TIMESTAMP('2012-05-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--123分钟
    VALUES TIMESTAMPDIFF(8,CHAR(TIMESTAMP('2012-05-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--2小时
    VALUES TIMESTAMPDIFF(16,CHAR(TIMESTAMP('2012-07-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--60天
    VALUES TIMESTAMPDIFF(32,CHAR(TIMESTAMP('2012-07-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--8周
    VALUES TIMESTAMPDIFF(64,CHAR(TIMESTAMP('2012-07-25 12:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--2月
    VALUES TIMESTAMPDIFF(128,CHAR(TIMESTAMP('2012-08-25 10:20:22')-TIMESTAMP('2012-05-25 10:20:22')));--1季度
    VALUES TIMESTAMPDIFF(256,CHAR(TIMESTAMP('2013-05-25 10:20:22')-TIMESTAMP('2012-05-25 10:20:22')));--1年

    14、时期的格式。ISO,使用国际标准组织(ISO)制订的日期和时间格式;USA,使用美国日期和时间的 IBM 标准格式。

    values char(current date,iso)--2012-05-25
    values char(current date,usa)--05/25/2012
    values char(current time,iso)--23.21.32


         

  • 相关阅读:
    Bzoj 4408: [Fjoi 2016]神秘数 可持久化线段树,神题
    Bzoj 4034: [HAOI2015]T2 树链剖分,子树问题,dfs序
    Bzoj 1984: 月下“毛景树” 树链剖分
    面试题14:调整数组顺序使奇数位于偶数前面
    面试题13:在O(1)时间删除链表结点
    面试题12:打印1到最大的n位数
    面试题11:数值的整数次方
    面试题10:二进制中1的个数
    [找程序员代写推荐]不要说你工作多久,多厉害!这些题不从网上找答案,你能做出来吗???
    [原]Android开发技巧--ListView
  • 原文地址:https://www.cnblogs.com/wanghonghu/p/2518604.html
Copyright © 2011-2022 走看看