0

SQL Server 2005 で次のクエリを実行しようとしています。

SELECT * 
FROM [WAGON_LOADING].[dbo].[WEIGHT_DATA]
WHERE [DATEANDTIME] BETWEEN '2013-11-7 0:00:00.000' AND '2013-11-7 23:59:59.000'

クエリの構文は問題ありません。しかし、クエリを実行すると出力が表示されません (データベースには今日のデータ、つまり 11 月 7 日しかありません) が、クエリの日時を 2013-7-11 0:00:00.000AND2013-7-11 23:59:59.000に変更すると、すべての値が取得されます。

何が問題なのですか?

4

4 に答える 4

2

文字列から日付への暗黙的な変換 (またはその点については、暗黙的な変換) に決して依存しないでください。変換方法を使用して、形式を指定します。

于 2013-11-07T12:09:05.377 に答える
1

以下を試してください。YYYYMMDD は、SQL Server で最も信頼性の高い文字列日付形式です。

SELECT * FROM [WAGON_LOADING].[dbo].[WEIGHT_DATA] 
WHERE [DATEANDTIME] >= '20131107' AND [DATEANDTIME] < '20131108'
于 2013-11-07T12:10:24.843 に答える
0

このようにしてみてください

SELECT * 
FROM PURCHASE 
WHERE OrderDate >='2004-03-01  00:00:00.000' AND OrderDate < '2004-04-01  00:00:00.000' 
于 2013-11-07T12:18:07.230 に答える
0

SQL Server が日付を順不同で解析しているようです。これは、数値の日付形式値SET DATEFORMATの 1 つを使用して構成できます。

サーバーのデフォルトは、現在の言語設定に対応する[dateformat]の行の列によって指定されます。sys.syslanguages

于 2013-11-07T12:10:04.587 に答える