我正在asp.net上的一个网站上工作.我从网页获取日期,然后根据用户输入我想从SQL Server数据库获取结果(使用存储过程).
问题是我只能从这个格式2016-10-08获取日期,这是类型字符串.但是在数据库中,我有一个类型为datetime的列,格式为2016-10-08 17:38:00.000.
我正在使用此查询进行搜索,但它不起作用.
select * from table where acceptedDate like @sDate+ '%';
其中sDate是存储过程的输入参数.请帮忙.谢谢
解决方法
不要将日期作为字符串传递.将它们作为DateTime传递.
.Net
DateTime
maps directly到SQL Server的
DateTime
.您所要做的就是将字符串解析为.Net代码中的DateTime结构,并将其作为参数传递给存储过程.
要搜索特定日期并忽略DateTime的时间部分,最好使用> =和<在你的SQL中:
select * from table where acceptedDate >= @Date AND acceptedDate < DATEADD(DAY,1,@Date);