积极答复者
这样的“时间”应该怎样更新???

问题
答案
-
转成日期, 调整之后, 再转换回你需要的格式就行了
参考下面的示例(不过, 一般日期的存储还是使用 datetime 类型为佳, 显示的时候再去处理显示格式, 而不是在存储的时候)
select replace( replace( convert(varchar(13), dateadd(hour, -1, stuff(convert(varchar(10), MyDateTime), 9, 0, ' ') + ':00' ), 120 ), ' ', '' ), '-', '' ) from( select MyDateTime = 2008101801 )data
- 已建议为答案 Steven.桦仔 2012年11月22日 11:42
- 已标记为答案 Amy PengMicrosoft employee, Moderator 2012年11月30日 1:33
-
不晓得这样的结果是不是你想要的,或许你可以参考看看。
declare @t table (MyDateTime char(10)) insert into @t values ('2008101801'),('2008101802'),('2008101803'),('2008010100') select dateadd(hour,-1, dateadd(HOUR ,cast(right(MyDateTime,2) as tinyint) ,cast(left(MyDateTime,8) as datetime) ) ) from @t
以上說明若有錯誤請指教,謝謝。
歡迎參觀我的BLOG - 積沙成塔- 已建议为答案 Amy PengMicrosoft employee, Moderator 2012年11月23日 5:13
- 已标记为答案 Amy PengMicrosoft employee, Moderator 2012年11月30日 1:33
全部回复
-
转成日期, 调整之后, 再转换回你需要的格式就行了
参考下面的示例(不过, 一般日期的存储还是使用 datetime 类型为佳, 显示的时候再去处理显示格式, 而不是在存储的时候)
select replace( replace( convert(varchar(13), dateadd(hour, -1, stuff(convert(varchar(10), MyDateTime), 9, 0, ' ') + ':00' ), 120 ), ' ', '' ), '-', '' ) from( select MyDateTime = 2008101801 )data
- 已建议为答案 Steven.桦仔 2012年11月22日 11:42
- 已标记为答案 Amy PengMicrosoft employee, Moderator 2012年11月30日 1:33
-
不晓得这样的结果是不是你想要的,或许你可以参考看看。
declare @t table (MyDateTime char(10)) insert into @t values ('2008101801'),('2008101802'),('2008101803'),('2008010100') select dateadd(hour,-1, dateadd(HOUR ,cast(right(MyDateTime,2) as tinyint) ,cast(left(MyDateTime,8) as datetime) ) ) from @t
以上說明若有錯誤請指教,謝謝。
歡迎參觀我的BLOG - 積沙成塔- 已建议为答案 Amy PengMicrosoft employee, Moderator 2012年11月23日 5:13
- 已标记为答案 Amy PengMicrosoft employee, Moderator 2012年11月30日 1:33