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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值