为什么还是不行:怎样将sql server2000中类型为字符串的列转换为smalldatetime列. (50分)

Q

qzzwg

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样用简单的方法将sql server2000中类型为字符串的列转换为smalldatetime列.
 
如果你的字符串類型值可是合格的日期值的話,直接在後台改類型,如
果不能進行轉換,那麼先用命令將不合格的數據改為合格數據,然後更
改類型即可.如字符串為'2002/11/23'轉換為會變為:'2002/11/23 00:00:00'
 
试试 convert 这个命令,我也忘了具体怎么用了,查一下msdn
 
cast(fieldname as smalldatetime)
 
首先你的字符串要符合规格,最好是'yyyymmdd',这样格式可以不考虑服务器的日期格式,
然后用convert(smalldatetime, @Var)转换
 
to bes96261:
按照这个方法,总会出现: expression 转换为数据类型 smalldatetime 时发生算术溢
出错误。
我用这两种方法都试过了:一是:'2002/12/01 00:00:00'
二是:'2002-12-01 00:00:00'
 
没有人回答吗?
 
没错, 用convert转换。
至于你出现的错误则几乎可以肯定是你的expression没写对。 比如应当是'2002/12/01'而写成2002/12/01(外面没加'')
 
to Another_eYes:
没看懂你的意思,能详细点吗:我的一列值已经全部转换成 2002/12/01 00:00:00 了,但就是不能转换
我用的语句是
update shoufei set date=convert(samlldatetime,riqi) where ....
 
riqi是什么字段?
 
varchar 长度19
 
cast(fieldname as smalldatetime)
 
update shoufei set date=riqi where ....
 

不是出现上面的错误就是下面的错误:
从 char 数据类型到 smalldatetime 数据类型的转换导致 smalldatetime 值越界。
语句已终止
 
知道怎么回事了,是因为有的记录的长度不到19 ,例如 '2002/12/1 00:00:00'
谢谢大家.
 
多人接受答案了。
 
顶部