0

文字列として保存された日付値を使用することを余儀なくされています。

例えば、

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'

これは、私が探していた範囲を与えてくれませんでした。任意に日付を表​​示しただけです。

日付範囲チェックに使用するコードを操作することは可能ですか?

事前に感謝します

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 に答える