DB2 应该有个 TO_CHAR 的函数。
用来把 日期 转换为 字符串
db2 => SELECTdb2 (cont) => TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS')
db2 (cont) => FROM SYSIBMSYSDUMMY1;
1
---------------------------------------------------------------------
2011-10-06 20:30:00
1 条记录已选择。
你可以尝试修改上面的例子, 把
TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS')
修改为
TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDD')
看看格式是否满足预期。
我觉得就得写个函数来做这件事情,因为DB2好像没有这种统计特定字符出现字数的函数,自己写个吧,基本算法是这样:
1用locate函数找到逗号
2substr函数截取逗号之后的字符串
3调到第一步执行,直到substr取到的字符串为空
如果是字符串转换成日期可以采用下面的格式:
i_cWorkDate=20150131
SET v_sCurYear=substr(i_cWorkDate,1,4);
SET v_sCurMonth=substr(i_cWorkDate,5,2);
SET v_sCurDay=substr(i_cWorkDate,7,2);
SET v_sWorkDate10=v_sCurYear||'-'||v_sCurMonth||'-'||v_sCurDay
这样v_sWorkDate10就是你要的10位日期了
char函数
char(current date,ISO)——转换成yyyy-mm-dd
char(current date,USA)——转换成mm/dd/yyyy
char(current date,EUR)——转换成ddmmyyyy
上面语句亲试了一下 没有问题啊。
注意一下符号是不是在英文状态下。
你这样转一次转过来应该会有问题的,
英文和空字符串怎么能转得了,
建议你将英文和空字符先转码,
转换成相应的数字,然后再转换成DECIMAL
strip跟trim类似,可以去掉2端指定的字符,
strip(string, b|l|t, char)
其中b=both,指去掉2端, l=leading,指去掉前导, t=trailing,指去掉后续
如 strip('009900', b, '0')就是去掉2端的0,结果为'99'
char可以没有,没有时指删除空白字符,跟trim/ltrim/rtrim类似
用ADODB更方便。。。
加入ADODB控件,然后定义一个RECORDSET和CONNECTION通过CONNECTION连接数据库,通过RECORDSET 进行INSERT \SELECT\UPDATE\DELETE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)