1
SELECT *  from [TableName]
WHERE
convert(varchar, News.PublishDate , 14)
 BETWEEN convert(varchar, @SearchStringDate, 14) 
 AND  (DATE_ADD((convert(varchar, @SearchStringDate, 14)), INTERVAL  1 DAY))

'1' 附近的语法不正确。

什么不正确?如何解决问题?请帮我

4

1 回答 1

5

此查询将编译:

select *
from News
where
    convert(varchar, News.PublishDate , 14)
    between convert(varchar, @SearchStringDate, 14) 
    and dateadd(day, 1, convert(varchar, @SearchStringDate, 14))

但我不知道你想要得到什么结果。根据文档,14 是'hh:mi:ss:mmm'格式。如果你想获取某个日期的记录,试试这个(不知道你@SearchStringDate是什么格式,最好convert用合适的格式):

select *
from News
where
    News.PublishDate >= cast(@SearchStringDate as date) and
    News.PublishDate < dateadd(day, 1, cast(@SearchStringDate as date))

另请注意,我在这里使用PublishDate而不是convert...- 因此可以使用此列上的索引。

于 2013-09-05T14:10:15.220 回答