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 - 1MINUTE  - 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 SELECTTO_CHAR( TIMESTAMP( ' 2012-5-25 21:18:12 '), ' YYYY-MM-DD HH:MI:SS 'FROM SYSIBM.DUAL; -- 2012-05-25 09:18:12 SELECTTO_CHAR( TIMESTAMP( ' 2012-5-25 21:18:12 '), ' YYYY-MM-DD HH24:MI:SS 'FROM SYSIBM.DUAL; -- 2012-05-25 21:18:12( SELECTTO_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秒 VALUESTIMESTAMPDIFF( 4, CHAR( TIMESTAMP( ' 2012-05-25 12:23:24 ') - TIMESTAMP( ' 2012-05-25 10:20:22 '))); -- 123分钟 VALUESTIMESTAMPDIFF( 8, CHAR( TIMESTAMP( ' 2012-05-25 12:23:24 ') - TIMESTAMP( ' 2012-05-25 10:20:22 '))); -- 2小时 VALUESTIMESTAMPDIFF( 16, CHAR( TIMESTAMP( ' 2012-07-25 12:23:24 ') - TIMESTAMP( ' 2012-05-25 10:20:22 '))); -- 60天 VALUESTIMESTAMPDIFF( 32, CHAR( TIMESTAMP( ' 2012-07-25 12:23:24 ') - TIMESTAMP( ' 2012-05-25 10:20:22 '))); -- 8周 VALUESTIMESTAMPDIFF( 64, CHAR( TIMESTAMP( ' 2012-07-25 12:23:24 ') - TIMESTAMP( ' 2012-05-25 10:20:22 '))); -- 2月 VALUESTIMESTAMPDIFF( 128, CHAR( TIMESTAMP( ' 2012-08-25 10:20:22 ') - TIMESTAMP( ' 2012-05-25 10:20:22 '))); -- 1季度 VALUESTIMESTAMPDIFF( 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
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值