如何修复正在使用的 SQL Server 版本不支持数据类型“datetime2”
本文关键字:不支持 版本 数据类型 datetime2 Server SQL 何修复 | 更新日期: 2023-09-27 17:56:53
我试图在两个日期之间的数据库中搜索,但出现错误:
正在使用的 SQL Server 版本不支持数据类型"datetime2"
这是我的代码
if (idbox.Text != "")
{
conn.Open();
SqlDataAdapter dataadabter = new SqlDataAdapter("select name, mil_no,Hodor_date,rotba,enseraf_date,user_hodor,user_enseraf,hodor_time,enseraf_time " +
"from Hodor_Data where CONVERT(DATETIME,Hodor_date,101)" + "between @p1 AND @p2" + " and mil_no='" + idbox.Text + "'", conn);
SqlParameter fromdate = new SqlParameter("@p1", SqlDbType.DateTime2);
fromdate.Value = dateTimePicker1.Value;
SqlParameter todate = new SqlParameter("@p2", SqlDbType.DateTime2);
todate.Value = dateTimePicker2.Value;
dataadabter.SelectCommand.Parameters.Add(fromdate);
dataadabter.SelectCommand.Parameters.Add(todate);
DataTable dt = new DataTable();
dataadabter.Fill(dt);
dataGridView1.DataSource = dt;
conn.Close();
hodor_date
nvarchar(50)
您使用的是旧版本的 sql,请改用SqlDbType.DateTime
,因为 sql 服务器版本不支持 DateTime2。
...
SqlParameter fromdate = new SqlParameter("@p1", SqlDbType.DateTime);
fromdate.Value = dateTimePicker1.Value;
SqlParameter todate = new SqlParameter("@p2", SqlDbType.DateTime);
...
代码中还有其他我有问题的地方(非参数化成员,不使用使用块,nvarchar表示日期等)。