enter image description here私は2つの値、期間番号と対応する日付のクエリを作成しています。期間は、類似しているが当社の月と同一ではない会計期間である。日付は大体正しいですが、私はWHEREステートメントでクリーンアップすると思ったいくつかの矛盾があります。WHERE句のSQLサーバー日時問題
例えば、日付2015年4月1日は、期間3に属しているが、それはこの問題を解決するには、両方の期間3と期間4に現れ、私は私が述べてWHEREステートメントを作成するだろうと考えた:
SELECT DISTINCT table1.period,
table1.datetime
FROM table1
WHERE table1.period <> 4 AND table1.datetime <> '4/1/2015'
これは、私が必要としていたものの代わりに、すべての期間4を取り去ったものです。私はまた、日時の構文を試してみました:
AND table1.datetime <> '20150401 00:00:00.000'
どちらの構文も同じ結果でした。私はSQLでかなり経験がなく、日時の値を扱うことを常に嫌っていたので、どんな助けも素晴らしいでしょう。
-EDIT-最初のdatetime WHERE句に一重引用符を追加するのを忘れました。
これはtable1.datetimeのタイプですか? –
@alexこれはdatetimeデータ型であり、ピリオドは文字列です。 – GHINOTE
日付の時刻値はありますか?日付文字列と比較すると日付としてキャストする必要があるかもしれません。 '04/1/2015 01:00:00.000'は '4/1/2015'とは異なりますが、CAST( '4/1/2015 01:00:00.000' AS DATE)と同じです。 – BinaryPatrick