2013-07-30 21 views
10

SQL Server Management Studioでは、以下に示すように、日付の変数を使用して特定の日付と時刻を参照しようとしています。SQLで可変日付を設定する

Declare @specified_date Date 
set @specified_date = '07-01-2013' 

Select * 
from etc 
Where CreatedDate > CONVERT(datetime, @specified_date & '00:00:00.000') 

このコードは動作していない、と私は、このエラーが発生します:

The data types date and varchar are incompatible in the '&' operator.

使用されているデータがそれに日付とタイムコードの両方を持っており、代わりに複数のクエリを変更するので、私は」ちょうど日付を一度定義し、その変数にそれを伝えることができるのが好きです。誰かが解決策を知っていれば、それは素晴らしいことでしょう。

+0

日付を文字列として指定すると、** YYYY-MM-DD形式になります。**常に** ISO-8601形式の日付を使用することをお勧めします。この形式のみが、言語および/または日付形式の設定ですべてのSQL Serverインスタンスで動作することが保証されています。他のものは*適切な設定で動作するかもしれませんが、別の設定で別のシステムで使用すると恐ろしく失敗する可能性があります。 –

答えて

16

あなたはこれを試してみました:

Declare @specified_date Date 
set @specified_date = '07-01-2013' 
Select * from etc 
Where CreatedDate > @specified_date 
+0

いいえ、あなたは私に働いたアイデアをくれました!ありがとうございました。 – Dakota

+0

私はこのコードを追加するのに苦労しています。それは基本的にはA、次のB、AとBの間を選択することです。 – Dakota

3

+代わりに&のを使用してください。また、文字列をキャストしてdatetimeにする必要があります。

Declare @specified_date Date 
set @specified_date = '07-01-2013' 
Select * from etc 
Where CreatedDate > CONVERT(datetime, @specified_date + cast('00:00:00.000' as datetime)) 
+1

ありがとう!これを保存する...私はVBAでコーディングするのに慣れているので、&lolを使って物事を連結するのは難しい – Dakota

関連する問題