如何处理SQL Server的日期格式?

Mon*_*liJ 1 c# sql sql-server

我在asp.net 4.0上的web应用程序使用日历控件"FromDate"当我要获取我的记录然后我的查询如下:

Select * 
From Sec_RoleFeatures
Where RoleId = 39 
  and FeatureCode = 'MR' 
  and FromDate='12/12/2012 11:05:05 AM'
Run Code Online (Sandbox Code Playgroud)

因为这个`FromDate字段日期格式与sql格式不匹配所以结果是它不给出记录给出null.

所以在这种情况下我该怎么办?如何将我的日期格式与sql日期格式相匹配?

Jon*_*eet 5

根本不传递SQL中的值.对所有这样的值使用参数化SQL .优点:

  • SQL更干净(没有混合代码和数据)
  • 避免SQL注入攻击(这里可能不相关,但绝对是字符串)
  • 避免转换问题

从根本上说,尽可能避免字符串转换.不仅在数据库工作中,而且在一般情况下.尽量让您的数据保持"自然"类型(DateTime此处).在这种情况下,您根本不需要将其转换为字符串(因为您可以使用参数),为什么这样做呢?

有关SqlCommand.Parameters如何在SQL中使用参数的示例,请参阅文档.