SQL查询中的错误日期

时间:2014-02-20 16:41:09

标签: sql date sql-server-2008-r2

我的SQL查询有问题。

错误是:

  

将varchar数据类型转换为smalldatetime数据类型会导致“+”超出范围值。

我尝试使用CONVERT功能来修复它,但徒劳无功。

public static List<string> Helper_Statistic_6(DateTime start, DateTime end) {
        DateTime dateStart = start;
        DateTime dateEnd = end;

        string query = "SELECT ... FROM ... WHERE DATE BETWEEN CONVERT(VARCHAR(10),'" + dateStart+ "',120) and CONVERT(VARCHAR(10),'" + dateEnd+ "',120) ";
}   

1 个答案:

答案 0 :(得分:1)

我怀疑你正在使用C#和Microsoft SQL Server。

在任何情况下,为了避免代码注入的麻烦,应该尝试使用参数化SQL。允许编译器负责将C#日期编组到SQL日期。

编辑:根据@marc_s建议,您应该注意使用保留的SQL关键字作为列名,否则,使用[]符号保护它们不被视为SQL关键字,即[DATE]而不是{{1} }。

我希望语法看起来像这样:

DATE