SQL 中如何拼写时间类型

今天在作统计的时候,要在一用户表中查询出某一用户的注册时间,该字段数据原型为“20030101”,即为2003-01-01的意识,然后求出到该次查询为止这一用户的在网时间,因为DB2中的date()函数只支持
date('2003-01-01')或date('01.01.2003')二种参数形式,所以不管用那种都要在数据原型中进行拆分,即分别拆分出年、月、日 ,然后重新拼凑在一起。思路比较简单,但如果处理不好sql会把拼凑时的‘-’号作为数据操作符来出来。我也是搞了二个小时才搞好,我晕,思路混乱~~~
所以特意记下来,以便以后查询:
SET STMT= 'INSERT INTO SESSION.'||MID_TABLE3||'('||MID_TABLE_SEG2||') ' 
||' SELECT MBL_NUM,'
||' DAYS(DATE('''||DATE_OF_EXTRACTION||'-01''))-DAYS(DATE(CHAR(LEFT(LTRIM(CHAR(SUBS_DATE_ID/10000)),4)||''-''||'
||' RIGHT(RTRIM(CHAR(SUBS_DATE_ID/100)),2)||''-''||'
||' RIGHT(RTRIM(CHAR(SUBS_DATE_ID)),2))))'
||' FROM '
||FROM_TABLE03||APP_MONTH1
||' WITH UR ';
INSERT INTO DYN_SQL_BDY VALUES (TO_TABLE, STMT);COMMIT;PREPARE S FROM STMT;EXECUTE S;COMMIT;
上一篇:总结了 90 条写 Python 程序的建议(上)


下一篇:面试官:说说WHERE,HAVING和ON的区别?