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