我在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'
由于此`FromDate
字段日期格式与sql格式不匹配,因此结果是它没有给出null
的记录。
所以在这种情况下我该怎么办?如何将我的日期格式与sql日期格式相匹配?
答案 0 :(得分:5)
根本不传递SQL中的值。对这样的所有值使用参数化SQL。优点:
从根本上说,尽可能避免字符串转换。不仅在数据库工作中,而且在一般情况下。尽量让您的数据保持“自然”类型(DateTime
此处)。在这种情况下,您根本不需要将转换为字符串(因为您可以使用参数),为什么要这样做呢?
有关如何在SQL中使用参数的示例,请参阅SqlCommand.Parameters
的文档。
答案 1 :(得分:1)
使用反向ISO格式:yyyymmdd(所以12/12/2012是20121212)并使用24小时格式。
Select * From Sec_RoleFeatures Where (RoleId = 39) and (FeatureCode = 'MR') and (FromDate = '20121212 11:05:05')
答案 2 :(得分:0)
尝试施放:
Select * From Sec_RoleFeatures Where RoleId = 39 and FeatureCode = 'MR' and
CAST(FromDate AS DATE) = CAST('12/12/2012 11:05:05 AM' AS DATE)
这里的优点是,它只会比较忽略时间部分的日期。
答案 3 :(得分:0)
尝试使用
Select * From Sec_RoleFeatures Where RoleId = 39 and FeatureCode = 'MR' and CONVERT(varchar(10),FromDate,101)='12/12/2012'