我正在使用第三方Microsoft SQL Server数据库,其中大多数日期都以varchar
格式保存为yyyy_MM_dd hh:mm:ss.SSS
列。在很多报告中,我需要选择由两个日期时间变量定义的特定时间范围。我使用以下声明:
where cast(replace(a.somedate,'_','-') as datetime) between @begin and @end
我注意到,使用此语句,当需要处理大量记录时,查询会变得非常昂贵。什么是将varchar与日期时间进行比较的最有效方法?