日期:2014-05-19  浏览次数:20553 次

拼写 INSERT 语句的问题
语句如下
SET   @SQL_INSERTURI   =   ' '
SET   @SQL_INSERTURI   =   @SQL_INSERTURI   +
'INSERT   INTO     M_BCMEISAI_URI   (   KEIJ_NEN     ,   KEIJ_KI     ,   WEEK_YMD   ,   FIX_KBN   ......   )   VALUES   ( ' ' '   +
@KEIJ_NEN   +   ' ' ', ' ' '+   @KEIJ_KI   +   ' ' ', ' ' '   +     Cast(   @INS_WEEK_YMD   As   Varchar)   +   ' ' ', ' ' '   +   CAST(@FIX_KBN   As   Varchar)   +   ' ' ', ' ' '   .........
+   ' ' ') '  
PRINT   @SQL_INSERTURI
EXEC(@SQL_INSERTURI)

字段类型如下:
@INS_WEEK_YMD         DATETIME
FIX_KBN                                   DECIMAL(15,3)

这两个字段我是用   CAST(****   As   Varchar)   处理的。可不可以?
对于那个时间类型,我插入Cast(   @INS_WEEK_YMD   As   Varchar)的值是2007-03-14   20:29:00.000

但是不用这种类型转换,直接插入@INS_WEEK_YMD的值是2007-03-14   20:29:36.890

我想插入的是2007-03-14   20:29:36.890   应该怎么处理?

------解决方案--------------------
可以,使用 '2007-03-14 20:29:36.890 '
------解决方案--------------------
Cast( @INS_WEEK_YMD As Varchar)
改用
Convert(Varchar, @INS_WEEK_YMD , 121)
------解决方案--------------------

declare @dt datetime
set @dt= '2007-03-14 20:29:36.890 '
select convert(varchar,@dt,121)
select @dt

------解决方案--------------------
他亂貼的,不用管