【发布时间】:2016-04-19 19:40:10
【问题描述】:
我正在尝试返回一个查询(在 ASP.NET 的网格视图中)WHERE Time >= DateTime.Now.Add(-60)。 WHERE 子句给我带来了无穷无尽的困难。
DateTime pastTime = DateTime.Now.Add(-60);
ds_DB.SelectCommand = "SELECT * FROM [vPurchaseTotals] WHERE [TimeOfTransaction] >= " + pastTime;
我的问题是让过去时间正确转换,所以它只返回较新的数据。 [TimeOfTransaction] 是表中的 time(7) 数据类型。
如何将 C# 的 DateTime 解析为 SQL Server 的 Time?
【问题讨论】:
-
使用参数化查询而不是字符串连接。这不仅可以解决您的问题,而且可以防止 sql 注入(使用字符串类型时)以及改进 sql 服务器查询缓存计划,从而可能提高性能。见微软文章How to: Execute a Parameterized Query
-
你没有。而是传递一个正确类型的参数,因此不需要摆弄字符串。
ds_DB.SelectCommand是什么——它允许参数化吗?如果没有,为什么不呢? -
好的,我会研究参数化。 ds_DB.SelectCommand 是针对我的数据库的绑定数据源的命令。
标签: c# asp.net sql-server datetime time