1. ホーム
  2. sql-server

[解決済み] SQLのdatetimeの比較

2022-03-09 07:32:01

質問

テーブルからいくつかの値を取得したいのですが、そのdatetimeカラムについていくつかの条件があります。

私は、"LocalHotels"という名前のテーブルから、指定された都市のすべてのホテルの値を取得したいのですが、それは可能ですか?また、私は2つの DateTime の値を指定します。1つ目の値は start" 列で、これは datetime のデータ型になります。のホテルの値以上でなければなりません。 締め切り カラムで、これは datetime のデータ型のどちらかです。

すべて datetime この2つのカラムの値は、ドイツ語の CultureInfo の形式で表示されます。

以下のクエリを記述したところ、問題なく動作しました。

string query = "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='5.12.2015 00:00:00' AND deadline >='8.12.2015 00:00:00' ORDER BY city";

しかし DateTime の値が1桁から2桁になるのは、以下の通りです。

string query "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='15.12.2015 00:00:00' AND deadline >='18.12.2015 00:00:00' ORDER BY city"

示すSQLExceptionが発生しました。

varcharデータ型からdatetimeデータ型への変換で、以下のような結果が得られました。 は範囲外の値です。

解決方法は?

ヨーロッパをはじめ、世界のどこでも、月を日付の3項目のうちの2番目に使うのは完全に理にかなっているのに、です。アメリカや今回のケースでは、どうやらSQLの日付時刻はMM.DD.YYYYなので、15ヶ月目と18ヶ月目を狙っているようです

したがって

string query "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='12.15.2015 00:00:00' AND deadline >='12.18.2015 00:00:00' ORDER BY city"

または

string query "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='2015-12-15' AND deadline >='2015-12-18' ORDER BY city"