0

我被迫使用存储为字符串的日期值。

例如,

Fieldname: claimsDate
data Type: nvarchar

这些值以 的格式存储mmddyy

E.G; 022413.

我已经设法使用以下查询将其转换为 2013 年 2 月 24 日。

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'

这没有给我我正在寻找的范围。它只是任意显示日期。

是否可以操作用于日期范围检查的代码?

非常感谢提前

4

1 回答 1

0

在 sql 中使用日期时间转换。此链接向您展示完整示例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 是日期时间变量

我希望这能满足你的需要

于 2013-04-02T15:31:58.967 回答