Chinaunix

标题: 请教两个SQL语句 [打印本页]

作者: mrsg    时间: 2008-12-02 21:28
标题: 请教两个SQL语句
请问两个修改语句
1。createtime是date类型,能否用一条语句将其中的年份字段修改,其它不动,比如将2008-12-1 06:07:00.0修改为2007-12-1 06:07:00.0
2。message字段是varchar字段内容基本上是“2008 *****************” ,能否用一条语句将2008修改为2007,其它不动
作者: mrsg    时间: 2008-12-02 23:14
解决了 方法如下
第二个
UPDATE
    tablename
SET
message= concat('2007',substr(message,5))

第一个
UPDATE
    tablename
SET
CREATETIME = to_date(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat('2007','-'),to_char(CREATETIME ,'MM')),'-'),to_char(CREATETIME ,'DD')),' '),to_char(CREATETIME ME,'HH24')),':'),to_char(CREATETIME ,'Mi')),':'),to_char(CREATETIME ,'SS')),'yyyy-mm-dd hh24:mi:ss')
作者: doni    时间: 2008-12-03 08:15
1.  add_months(createdate,-12)
因为存在2008/02/29的问题,否则createdate-365也是可以的,比如2007改到2006年就可以createdate-365

2. 如果格式统一的话,都是“2008-12-1 06:07:00.0”的格式,用这个方法就可以:replace(message,'2008','2007')

[ 本帖最后由 doni 于 2008-12-3 08:21 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2