我被迫使用存储为字符串的日期值。
例如,
Fieldname: claimsDate
data Type: nvarchar
值以mmddyy
。
E.G; 022413
。
我已设法使用以下查询将其转换为02/24/2013。
select (left(claimsdate,2) + '/' + substring(claimsdate,3,2) + '/' + case when cast(right(claimsdate,2) as int) >= 70 then '19' else '20' end + right(claimsdate,2)) claimsdate
from tblTable
现在的问题是我们无法使用该代码执行日期范围检查。
我尝试过这样使用它:
select (left(claimsdate,2) + '/' + substring(claimsdate,3,2) + '/' + case when cast(right(claimsdate,2) as int) >= 70 then '19' else '20' end + right(claimsdate,2)) claimsdate
from tblTable
where (left(claimsdate,2) + '/' + substring(claimsdate,3,2) + '/' + case when cast(right(claimsdate,2) as int) >= 70 then '19' else '20' end + right(claimsdate,2))
between '03/01/2007' and '12/31/2007'
这并没有给我我想要的范围。它只是随意显示日期。
是否可以操作用于日期范围检查的代码?
非常感谢
答案 0 :(得分:0)
在sql中使用datetime转换。此链接显示完整示例http://www.sqlusa.com/bestpractices/datetimeconversion/
select (left(claimsdate,2) + '/' + substring(claimsdate,3,2) + '/' + case when cast(right(claimsdate,2) as int) >= 70 then '19' else '20' end + right(claimsdate,2)) claimsdate
from tblTable
where cast(((case when cast(right(claimsdate,2) as int) >= 70 then '19' else '20' end + right(claimsdate,2) + '-' + left(claimsdate,2) + '-' + substring(claimsdate,3,2))) as datetime)
between @fromDate and @endDate
@fromDate和@endDate是日期时间变量
我希望这能满足您的需求