急!!!急!!!急!!!急!!!急!!!急!!!

hewei2003 2003-09-12 10:23:13
我有一格式为char的字段,其值为20030905152536这个时间格式,分别为年,月,日,时,分,秒,我现要将这个字串里的'日'加上3天,(在这里结果为20030908152536),但可能会碰到只有一位数的'日',转换为数字加上3之后就丢失了一位数(05变为8,而不是08),请问高手,该怎么解决这个问题呢?,谢谢!
...全文
21 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CoolSailor 2003-09-12
  • 打赏
  • 举报
回复
declare @t1 varchar(24)
declare @t4 varchar(20)
declare @t2 datetime
declare @n int

set @t2 = cast('2003-09-05 15:25:36' as datetime)
set @t1 = cast(datepart(year,@t2) as char(4))
set @t4 = cast(datepart(month,@t2) as varchar(2))
set @n = len(@t4)
if(@n < 2)
set @t4 = stuff(@t4,1,0,'0')
set @t1 = @t1 + @t4
print @t1
--日,时间依次类推,就是代码多点
zjcxc 元老 2003-09-12
  • 打赏
  • 举报
回复
用类似下面的方法,@a在处理过程中可以改为字段名

declare @a char(14)
set @a='20030905152536'
select @a=convert(varchar,convert(datetime,left(@a,8),112)+5,112)+right(@a,6)
select @a
zjcxc 元老 2003-09-12
  • 打赏
  • 举报
回复
用类似下面的方法,@a在处理过程中可以改为字段名

declare @a char(14)
set @a='20030905152536'
select @a=convert(varchar,convert(datetime,left(@a,8),112)+5,112)+right(@a,6)
select @a
sdhdy 2003-09-12
  • 打赏
  • 举报
回复
select convert(varchar,cast(left('20030905152536',8) as datetime)+3,112)+right('20030905152536',6)
SE1 2003-09-12
  • 打赏
  • 举报
回复
1、将年月日部分转换为日期类型的数据
2、加上3天
3、转换为char
dlkfth 2003-09-12
  • 打赏
  • 举报
回复
20030905152536 把串转换成这种格式'2003-09-08 15:25:36'
select dateadd(day,3,cast('2003-09-08 15:25:36' as datetime))
dlkfth 2003-09-12
  • 打赏
  • 举报
回复
20030905152536 把串转换成这种格式'2003-09-08 15-25-36'
select dateadd(day,3,cast('2003-09-08 15-25-36' as datetime))

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧