1

如何将 C# Datetime 转换为等效的 SQL DATE 类型,以便我可以在 WHERE 类中进行简单的相等,而无需参数化?

4

4 回答 4

4

只需将其转换为 iso 字符串。

日期和时间

YourDateTime.ToString("yyyy-MM-ddTHH\:mm\:ss.fffffffzzz");

仅日期

YourDateTime.ToString("yyyy-MM-dd");

但我真的鼓励您使用参数化查询,因为每次您的 T-SQL 查询不同时,您都会生成一个新的 Sql 执行计划

如果您使用参数,您将只获得一个计划。这会带来更好的性能。

更多信息

于 2012-04-19T12:07:16.397 回答
2
yourDateTime.toString("yyyy-MM-dd HH:mm:ss");

但是使用参数会更好

于 2012-04-19T12:07:51.327 回答
1

我认为其他答案并没有真正理解您的问题(或者我没有)

根据我收集的信息,您在问如何从 C# 转换DateTime为 SQLsDate类型(不是 sql datetime!)。所有其他答案都包含时间。

如果这是真的,你根本不必担心。SQLDate与 .NET 完全兼容,DateTime因此只需将其传递给过程即可去除时间部分并正确传递日期。

于 2012-04-19T12:19:37.623 回答
1

如果你在谈论SqlDateTime结构,你可以使用它的构造函数,它接受一个DateTime 类型的值:

请参阅 MSDN:SqlDateTime 构造函数 (DateTime)

于 2012-04-19T12:08:29.327 回答