我正在尝试更新SQL Server中的DATE
(不是DATETIME
)列,但是当我执行SQL命令时,它也会以时间格式发布。
string datetosql = "10.4.2015";
string sqlQuery = "UPDATE tbl_tasks " +
"SET description = '" + tbTaskDescription.Text + "', " +
"deadline = '" + datetosql + "' , " +
"status = '" + statusIndex.ToString() + "' " +
"WHERE tid = " + _TaskID;
当我稍后使用SqlDataReader
收集日期时,会以时间格式发布:04.10.2015 00:00:00
。为什么会这样?
答案 0 :(得分:4)
.NET没有仅限日期的数据类型。
如果要求返回SQL Server date
或time
,它总是在.NET中返回DateTime
结构实例。对于date
,时间属性(小时,分钟等)将为0
。
请注意,使用未参数化的查询会被视为错误!你对SQL注入是开放的,因为你需要逃避引号等等,所以你的生活更加艰难。
答案 1 :(得分:-1)
将cast
添加到datetosql
,例如:
Cast(datetosql as Date)