首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这么的“时间”应该怎样更新?

2012-12-17 
这样的“时间”应该怎样更新???将“MyDateTime字段”减去“1”。比如,“2008101801”表示的是“2008年10月18日01时”,

这样的“时间”应该怎样更新???



将“MyDateTime字段”减去“1”。比如,“2008101801”表示的是“2008年10月18日01时”,现在想将“MyDateTime字段”都减去一小时。

也就是“2008101801”变为“2008101800”,“2008101802”变为“2008101801”,“2008101803”变为“2008101802”,  这样的处理语句应该怎样写???
[最优解释]

IF OBJECT_ID('test1') IS NOT NULL 
    DROP TABLE test1 ;
CREATE TABLE test1
    ( 
ID INT,
MyDateTime NVARCHAR(22)
    )
     
INSERT  INTO test1  
        SELECT  1,'2008101800'
        UNION
        SELECT  2,'2008101801'
        UNION
        SELECT  3,'2008101802'
        UNION
        SELECT  4,'2008101803'

IF NOT OBJECT_ID('#a') IS NOT NULL 
    DROP TABLE #a
SELECT  ID ,
        MyDateTime ,
        DATEADD(HOUR
, CONVERT(INT, RIGHT(MyDateTime, 2)),CONVERT(DATETIME, LEFT(MyDateTime, 8))
) AS 'datetime' ,
        CONVERT(NVARCHAR(30)
, DATEADD(HOUR, -1,DATEADD(HOUR,CONVERT(INT, RIGHT(MyDateTime, 2)),CONVERT(DATETIME, LEFT(MyDateTime,8))))
, 20) AS 'reduce'
INTO    #a
FROM    test1

SELECT * FROM #a

SELECT  ID,
MyDateTime,
LEFT(REPLACE(REPLACE(reduce,'-',''),' ',''),10)
FROM    #a

[其他解释]
update TB set MyDateTime=LEFT(MyDateTime,len(MyDateTime)-2)+right('00'+cast(cast(RIGHT(MyDateTime,2) as int)-1 as varchar(2)),2)
[其他解释]
update table set MyDateTime = cast(cast(mydatetime as int) - 1 as varchar(20))
[其他解释]
update table 
set mydatetime=cast(cast(mydatetime)as int)-1 as varchar(20))
go
[其他解释]
Case  when...
[其他解释]
谢谢各位大师。

热点排行