select cast(cast(日期 as varchar) +' '+left(csat(时间 as varchar),2)+':'+right(csat(时间 as varchar),2) as datetime)-------------------------------------- 看见了么, 那支蛾子, 正飞向太阳, 那就是我! --------------------------------------
刚才写得心急漏了个地方,重写一次: select convert(datetime,cast(日期 as varchar)+' '+cast(left(时间,2)+':'+right(时间,2) as varchar))
declare @日期 varchar(20),@时间 varchar(20) set @日期='20030521' set @时间='1200' select convert(datetime,cast(@日期 as varchar)+' '+cast(left(@时间,2)+':'+right(@时间,2) as varchar)) --调试通过
各位,大家都忽略了一个问题:right(cast(时间 as char(4),2) as datetime 如果时间是8:10 即810 就会造成时间越界!现在我已经解决了这个问题。谢谢大家的参与!解贴
cast(时间 as char(4))当然会,但你用用 cast(时间 as varchar(4))试试
right(cast(日期/100 as varchar),2) + '-' +
right(cast(日期 as varchar),2) + ' ' +
cast(时间/100 as varchar) + ':' +
right(cast(时间 as varchar), 2)
+':'+right(cast(时间 as char(4),2) as datetime) as 时间日期字段
from 表
看见了么,
那支蛾子,
正飞向太阳,
那就是我!
--------------------------------------
select convert(datetime,cast(日期 as varchar)+' '+cast(left(时间,2)+':'+right(时间,2) as varchar))
set @日期='20030521'
set @时间='1200'
select convert(datetime,cast(@日期 as varchar)+' '+cast(left(@时间,2)+':'+right(@时间,2) as varchar))
--调试通过
cast(时间 as varchar(4))试试