DB2数据库日期时间的处理

来源:互联网 发布:sdl区域分割算法 编辑:程序博客网 时间:2024/05/01 16:35

参考:

http://www.cnblogs.com/wanghonghu/archive/2012/05/25/2518604.html

 

日期处理.sql

SELECT 'HELLO DB2' FROMSYSIBM.SYSDUMMY1;

SELECT 'HELLO DB2' FROM SYSIBM.DUAL;

VALUES 'HELLO DB2';

 

VALUES CURRENT DATE; ---日期

VALUES CURRENT TIME;  ----时间

VALUES CURRENT TIMESTAMP;  ----日期+时间

 

VALUES YEAR(CURRENTTIMESTAMP);/*2012*/  VALUESYEAR('2012-05-25 21:18:12');/*2012*/

VALUES MONTH(CURRENTTIMESTAMP);/*5*/  VALUESMONTH('2012-05-25 21:18:12');/*5*/

VALUES DAY(CURRENTTIMESTAMP);/*25*/  VALUES DAY('2012-05-2521:18:12');/*25*/

VALUES HOUR(CURRENTTIMESTAMP);/*21*/  VALUESHOUR('2012-05-25 21:18:12');/*21*/

VALUES MINUTE(CURRENTTIMESTAMP);/*18*/  VALUESMINUTE('2012-05-25 21:18:12');/*18*/

VALUES SECOND(CURRENTTIMESTAMP);/*12*/   VALUESSECOND('2012-05-25 21:18:12');/*12*/

VALUES DATE(CURRENTTIMESTAMP);/*2012/5/25 0:00:00*/  VALUESDATE('2012-05-25 21:18:12');/*2012/5/25 0:00:00*/

VALUES TIME(CURRENTTIMESTAMP);/*21:18:12*/  VALUESTIME('2012-05-25 21:18:12');/*21:18:12*/

VALUES TIMESTAMP(CURRENTTIMESTAMP);/*2012/5/25 21:18:12*/  VALUESTIMESTAMP('2012-05-25 21:18:12');/*2012/5/25 21:18:12*/

 

-------年月日的相加

VALUES TIMESTAMP('2012-5-2521:18:12')+1 YEAR;--2013/5/25 21:18:12

VALUES TIMESTAMP('2012-5-2521:18:12')+1 MONTH;--2012/6/25 21:18:12

VALUES TIMESTAMP('2012-5-2521:18:12')+1 DAY;--2012/5/26 21:18:12

VALUES TIMESTAMP('2012-5-2521:18:12')+1 HOUR;--2012/5/25 22:18:12

VALUES TIMESTAMP('2012-5-2521:18:12')+1 MINUTE;--2012/5/25 21:19:12

VALUES TIMESTAMP('2012-5-2521:18:12')+1 SECOND;--2012/5/25 21:18:13

VALUES TIMESTAMP('2012-5-2521:18:12')+1 YEAR+1 MONTH+1 DAY+1 HOUR+1 MINUTE +1 SECOND ;--2013/6/26 22:19:13

VALUES TIMESTAMP('2012-5-2521:18:12')-1 YEAR-1 MONTH-1 DAY-1 HOUR-1 MINUTE -1 SECOND ;--2011/4/24 20:17:11

 

values TIMESTAMP('2015-02-2821:18:12')+1 day;

 

-----获取两个日期的差值

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

 

------转化为字符串

SELECT TO_CHAR(TIMESTAMP('2012-5-2521:18:12'),'YYYY-MM-DD') FROM SYSIBM.DUAL;--2012-05-25

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

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

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

 

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

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

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

values DAYOFYEAR(currenttimestamp);--32范围在 1-366 的整数值表示

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

VALUES WEEK(CURRENT TIMESTAMP)--21范围在 1-54 的整数值表示

 

/***

TIMESTAMPDIFF(n,CHAR(TIMESTAMP('2012-05-2510: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:年;***/

VALUESTIMESTAMPDIFF(2,CHAR(TIMESTAMP('2012-05-25 10:23:24')-TIMESTAMP('2012-05-2510:20:24')));--180秒

VALUESTIMESTAMPDIFF(4,CHAR(TIMESTAMP('2012-05-25 12:23:24')-TIMESTAMP('2012-05-2510:20:22')));--123分钟

VALUES TIMESTAMPDIFF(8,CHAR(TIMESTAMP('2012-05-2512:23:24')-TIMESTAMP('2012-05-25 10:20:22')));--2小时

VALUESTIMESTAMPDIFF(16,CHAR(TIMESTAMP('2012-07-25 12:23:24')-TIMESTAMP('2012-05-2510: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-2510:20:22')));--2月

VALUESTIMESTAMPDIFF(128,CHAR(TIMESTAMP('2012-08-25 10:20:22')-TIMESTAMP('2012-05-2510:20:22')));--1季度

VALUES TIMESTAMPDIFF(256,CHAR(TIMESTAMP('2013-05-2510:20:22')-TIMESTAMP('2012-05-25 10:20:22')));--1年

 

 

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