我的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) ";
}
答案 0 :(得分:1)
我怀疑你正在使用C#和Microsoft SQL Server。
在任何情况下,为了避免代码注入的麻烦,应该尝试使用参数化SQL。允许编译器负责将C#日期编组到SQL日期。
编辑:根据@marc_s建议,您应该注意使用保留的SQL关键字作为列名,否则,使用[]符号保护它们不被视为SQL关键字,即[DATE]
而不是{{1} }。
我希望语法看起来像这样:
DATE