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


         

  • 相关阅读:
    Codeforces467C George and Job
    Codeforces205E Little Elephant and Furik and RubikLittle Elephant and Furik and Rubik
    Codeforce205C Little Elephant and Interval
    51nod1829 函数
    51nod1574 排列转换
    nowcoder35B 小AA的数列
    Codeforce893E Counting Arrays
    gym101612 Consonant Fencity
    CodeForces559C Gerald and Giant Chess
    CodeForces456D A Lot of Games
  • 原文地址:https://www.cnblogs.com/wanghonghu/p/2518604.html
Copyright © 2011-2022 走看看