2017-02-26 8 views
1

SQL Server 2008 R2に接続するASP.NETアプリケーションを構築しました。私はこれに脳のおならを持っています。私は、ユーザーが選択した日付の間にいくつかのレコードを取得しようとしています。SQL Serverで日付を比較

アプリケーションはSQL文を作成し、それをサーバに送信し、レコードの返送を待ちます。 SQL文は次のようになります。

SELECT * From policy pp where 20160115 between pp.policy_begin_date and pp.policy_end_date 

すべてのレコードを返します。

'20160115'をdatetime変数に変換する必要がありますか?もしそうなら、それをどのように変換するのですか?

答えて

1

はい。このように:

... WHERE CAST('2016-01-15' AS DATE) BETWEEN ... 

実際にはdatetimeでない限り。

1
SELECT * 
From policy pp 
where cast('20160115' as datetime) between pp.policy_begin_date and pp.policy_end_date 

あなたはそれが動作するかどうか、それは、サーバーの言語に依存しているので、あなたは、あなたの文字列を日付に変換/キャストすべきであるCAST or CONVERT

1

を使用することができます。

ベストな方法は、変換を使用して、言語についての情報を与えることです:

convert(date[time], '20160115', 112)