日期:2014-05-18  浏览次数:20711 次

求SQL语句,在线等待~
字符串转日期函数
字段名:year,month,day
数据:2007,3,16
类型:varchar
如何把这三个字段串在一起转化成datetime型的

我这样写的,select   convert(datetime,(year+ '- '+month+ '- '+day),120)   from   aaa

但提示我:从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。


大家帮帮忙啊

------解决方案--------------------
select cast(year+ '- '+month+ '- '+day as datetime) as 转换结果 from aaa

------解决方案--------------------
declare @t table(year varchar(20),month varchar(20),day varchar(20))
insert @t select '2007 ', '3 ', '16 '


select convert(datetime,(year+ '- '+month+ '- '+day),120) from @t
---结果
2007-03-16 00:00:00.000

------解决方案--------------------
楼主本身语句是对的,只是数据库里的数据有的不符合要求罢了
请楼主查查,是不是月份或日期超出范围

------解决方案--------------------
xiaoxi1031(小西) ( ) 信誉:100 Blog 2007-03-16 15:34:28 得分: 0


从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。

老是报这个错


--------

這個錯誤就是由於組合出來的時間不符合造成的。

比如
Year 2007
Month 2
Day 30

這樣就會報錯