SQL字符转成日期出错.刚才没有分.现在改了50分.谢谢deardai提醒.(50分)

  • 主题发起人 主题发起人 icefox00
  • 开始时间 开始时间
I

icefox00

Unregistered / Unconfirmed
GUEST, unregistred user!
update kufu set kufu.预计完成时间=convert(char(10),cast(kufu.厂编 as datetime),120) from kufu
说明:厂编的字符为060809 -- (06年8月9日),也就是说这个日期将会完工
出错....'服务器: 消息 241,级别 16,状态 1,行 1
从字符串转换为 datetime 时发生语法错误。'
 
要改成形如'06-08-09'这样的才能转换成日期类型。
 
cast(substring(kufu.厂编,1,2)+'-'+substring(kufu.厂编,3,2)+'-'+substring(kufu.厂编,5,2) as datetime)
 
update kufu set kufu.预计完成时间=cast(substring(kufu.厂编,1,2)+'-'+substring(kufu.厂编,3,2)+'-'+substring(kufu.厂编,5,2) as datetime) from kufu
或者
update kufu set kufu.预计完成时间=convert(char(10),cast(substring(kufu.厂编,1,2)+'-'+substring(kufu.厂编,3,2)+'-'+substring(kufu.厂编,5,2) as datetime),120) from kufu
都出现下面的错误
将 expression 转换为数据类型 datetime 时发生算术溢出错误。
 
估计你的kufu.厂编 不是严格按照YYMMDD编号的
 
FT.晕死
update kufu set kufu.预计完成时间=kufu.厂编 from kufu
就行了.
哎哎哎
 
多人接受答案了。
 
呵呵.我的厂编是int型.所以是60302,6前面的0自动去除了/所以我用了一个这样的转换
这是完整的语句
select stuff(kufu.厂编,1,1,'06') as 厂编, id
into #temp11
from kufu
where kufu.预计完成时间 is null

update kufu
set kufu.预计完成时间=#temp11.厂编
from kufu,#temp11
where kufu.id=#temp11.id and kufu.预计完成时间 is null
drop table #temp11
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
974
import
I
I
回复
0
查看
908
import
I
后退
顶部