如何将SQL Server Datetime与C#进行比较

时间:2014-11-19 14:20:12

标签: c# sql sql-server datetime

我必须从C#进行查询并与datetime进行比较。 Datetime存储在我的数据库中,如下所示:

2014-11-09 00:00:01

我正在使用此查询:

SELECT * 
FROM Table 
WHERE DATETIMEVAR = '19/11/2014 0:00:01' AND OTHERVAR = 1

但它的格式不同。有没有办法从C#中的System.DateTime转换为SQL Server中的日期,或者从SQL Server转换为该格式的日期时间?我应该在like条款中使用=而不是Where进行核对。

感谢。

2 个答案:

答案 0 :(得分:4)

最佳方式是在C#中进行参数化查询,然后将日期时间参数设置为日期时间(而不是依靠在字符串之间来回转换日期。)

所以你应该有类似的东西:

SELECT * 
FROM Table 
WHERE DATETIMEVAR = @DateTimeValue AND OTHERVAR = 1

然后将@DateTimeValue参数定义为日期时间并将其设置为日期时间

那种方法:

  • 可防止任何 SQL注入漏洞
  • 避免任何字符串/格式问题 - 它将DATETIME原生格式的System.DateTime进行比较

答案 1 :(得分:2)

如果要从DateTime对象生成查询,只需执行date.ToString("yyyy-MM-dd HH:mm:ss")将其转换为查询中的格式。