带有日期值的SQL语法不正确

时间:2011-11-29 07:33:46

标签: sql sql-server vb6

我有一个带有sql server后端的vb6应用程序。这是我的以下代码:

 cn.Execute "insert into abschart ([t_leave],[cu_month],[last_month],[last_year_month]) SELECT * FROM" _
 & "(SELECT     no_d_sick,period_e,'sick' as t_leave from foxmil...transac)" _
 & "AS n PIVOT (sum(no_d_sick) FOR period_e IN (['" & txtend & "'],['" & lmon & "'],['" & lymon & "'])) AS pvt Union SELECT * FROM" _
 & "(SELECT     no_d_abs,period_e,'Absence' as t_leave from foxmil...transac)" _
 & "AS n PIVOT (sum(no_d_abs) FOR period_e IN (['" & txtend & "'],['" & lmon & "'],['" & lymon & "'])) AS pvt".

我收到的“txtend”语法错误不正确.txtend是日期类型。

1 个答案:

答案 0 :(得分:2)

这是您在替换代码中获得的额外引号。您说([20-Nov-11])有效,但(['" & txtend & "'])没有,但请注意第二个示例会产生(['20-Nov-11'])


我同意其他人的意见,避免字符串连接会更好(尽管我认为你不能使用数据条款)。

此外,最好使用明确的日期格式,例如YYYYMMDD,例如今天将是20111129