在SQL表中使用DateTime数据类型

时间:2018-03-15 16:20:00

标签: c# sql datetime

我正在尝试创建一个检查日期的方法,以查看它是否已存在于我的数据库中。但是,我得到一个例外,该程序无法从varchar转换。任何人都能告诉我它为什么会这样做?

public static int CheckDate(DateTime date)
    {
        using (SqlConnection connection = new SqlConnection(_connectionstring))
        {
            int nooforders = 0;
            connection.Open();
            string SqlQuery = string.Format("SELECT COUNT(OrderID) AS 'OrderCount' FROM OrderTable WHERE DateofCollectionDelivery = '{0}'", date);
            SqlCommand datecheck = new SqlCommand(SqlQuery, connection);
            SqlDataReader sqlDataReader = datecheck.ExecuteReader();
            while (sqlDataReader.Read())
            {
                nooforders = (int)sqlDataReader["OrderCount"];
            }
            connection.Close();
            return nooforders;
        }
    }

这是我运行的方法,这是例外:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

表中的字段的数据类型为datetime,因此我不确定它为什么会抛出异常。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:-1)

使用格式mm / dd / yyyy或yyyy-mm-dd。使用DateTime.Parse()函数将日期解析为此格式。