1. ホーム
  2. sql

[解決済み] 2つの日時の間のデータを選択するSQLクエリ [終了しました]。

2022-03-10 22:54:01

質問

があります。 [time] フィールドはDateTime変数で、フォーマットは以下の通りです。 2014-04-08 23:55:00.000 . 特定の2つの日時の間にあるすべてのレコードを選択したいのです。

このような

SELECT * FROM  [table] 
WHERE time >=2014-04-08 23:53:00.000 AND time <= 2014-04-08 23:58:00.000

SQLを書く

SELECT * FROM [table]
WHERE time BETWEEN #4/19/2014 12:00:00 AM# and #4/19/2014 12:30:00 AM#

しかし、これではうまくいきません。エラーコードは

12' 付近に不正な構文があります。

説明 の実行中に処理されない例外が発生しました。 現在の Web リクエスト。スタックトレースで詳細を確認してください。 に関する情報、およびエラーの原因がコードのどこにあるかについての情報を提供します。

解決方法は?

値をシングルクォートで囲む必要があります。

SELECT * FROM  [table] 
WHERE [time] >='2014-04-08 23:53:00.000' AND [time] <= '2014-04-08 23:58:00.000'

ついでに言うと、データの整形方法について勘違いしていますね。その yyy-MM-dd HH:mm:ss.fff 形式は、Visual Studio、Management Studio、またはクエリーツールが表示する便宜的なものでしかありません。Datetimeカラムは、実際には人間が読むことのできないバイナリ形式で保存されています。