繁体   English   中英

从字符串转换日期和/或时间时,DateTime转换失败

[英]DateTime conversion failed when converting date and/or time from character string

我试图运行以下简单的SQL查询,在两个日期之间选择数据。 日期来自以下DateTimePickers: DTP_FromDTP_To

        DateTime startDate = DTP_From.Value.Date;
        DateTime endDate = DTP_To.Value.Date;
        SqlConnection con = new SqlConnection(strConnection);
        con.Open();
        SqlCommand sqlCmd = new SqlCommand();
        sqlCmd.Connection = con;
        sqlCmd.CommandType = CommandType.Text;
        sqlCmd.CommandText = "SELECT * From Report_Sales where Date >= '" + startDate + "' AND Date <= '" + endDate + "'";

执行查询时,我收到以下错误:

从字符串转换日期和/或时间时,日期时间转换失败

如何运行上述查询错误?

参数化您的查询以避免这样的问题。

sqlCmd.CommandText = "SELECT * From Report_Sales where Date >= @startDate AND Date <= @endDate";
sqlCmd.Parameters.AddWithValue("@startDate", startDate);
sqlCmd.Parameters.AddWithValue("@endDate", endDate);

如果你不遵循格兰特温尼的优秀建议来参数化您的查询,这也将帮助您避免其他恶意; 要将DateTime数据包含到Transact-SQL查询中,需要使用ISO 8601样式进行格式化:

YYYY-MM-DDTHH:MM:ss.nnn [Z]

SELECT *
FROM Report_Sales
WHERE Date >= '2014-04-18T21:26:01Z'
AND Date <= '2014-04-18T22:26:01Z'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM