ダウンボートがある理由の1つは、2つのデータベースで質問にタグを付けるように選択したためです。ただし、それぞれの構文は非常に異なります。
もう1つは、「重要な事実」がなければ、私たちは推測のままです。例えばwhat is the datatype of StartTime ??
データ型がDATE
の場合はWHERE StartDate LIKE '2012-10-%%'
が失敗しますが、データ型がVARCHAR
またはそれと類似していれば、それは機能します(並べ替え)。 StartTimeのデータ型も知っておく必要があります。だから、
:
- 場合は、MySQLを使用している
- 開始日のデータ型は、日付
- のStartTimeのデータ型は以下
時間であるの一例ですどのようにクエリが動作する可能性があります、デモを参照SQL Fiddle
の
サンプルデータ(MySQLの):
CREATE TABLE Engagements
(`EngagementNumber` int, `StartDate` datetime, `StartTime` time)
;
INSERT INTO Engagements
(`EngagementNumber`, `StartDate`, `StartTime`)
VALUES
(1, '2017-09-01 00:00:00', '13:14:15'),
(2, '2017-10-01 00:00:00', '14:15:16'),
(3, '2017-10-11 00:00:00', '15:16:17')
;
クエリ1:
SELECT EngagementNumber,
StartDate,
StartTime
FROM Engagements
WHERE StartDate >= '2017-10-01' and StartDate < '2017-11-01'
AND StartTime BETWEEN '12:00' AND '17:00'
Results:
| EngagementNumber | StartDate | StartTime |
|------------------|----------------------|-----------|
| 2 | 2017-10-01T00:00:00Z | 14:15:16 |
| 3 | 2017-10-11T00:00:00Z | 15:16:17 |
が同じであることに注意してくださいクエリはSQL Serverでも動作しますが、データ型はここで仮定したものと同じです。
最後のメモ。データ型が日付&である場合、そのように見えるかもしれませんが、データ型は文字列ではありません(テキスト)。だからLIKE '2012-10%'は動作しませんが、日付/時刻情報をスティングとして保存することは、とにかく良い考えではありません。
sql-serverとmysqlは異なるものを指します。 –
StartTimeのデータ型は何ですか? –
テーブル定義とサンプルデータセットを提供 –