У меня есть одна таблица (назовем ее dbo.temp
), в которой ежеминутно регистрируется температура от разных датчиков:
+-----------+------------+----------+------+
| SENSOR_ID | DATE | TIME | TEMP |
+-----------+------------+----------+------+
| 106971 | 2017-01-10 | 10:05:00 | 21.1 |
| 106971 | 2017-01-10 | 10:06:00 | 21.1 |
| 106971 | 2017-01-10 | 10:07:00 | 21.2 |
| 106971 | 2017-01-10 | 10:08:00 | 21.1 |
| 106971 | 2017-01-10 | 10:09:00 | 21.1 |
| 106971 | 2017-01-10 | 10:10:00 | 21.2 |
| 106971 | 2017-01-10 | 10:11:00 | 21.2 |
| 106971 | 2017-01-10 | 10:12:00 | 21.2 |
| 106971 | 2017-01-10 | 10:13:00 | 21.3 |
| 106971 | 2017-01-10 | 10:14:00 | 21.4 |
| 106971 | 2017-01-10 | 10:15:00 | 21.4 |
| 106971 | 2017-01-10 | 10:16:00 | 21.4 |
| 106971 | 2017-01-10 | 10:17:00 | 21.5 |
| 106971 | 2017-01-10 | 10:18:00 | 21.3 |
| 106971 | 2017-01-10 | 10:19:00 | 21.3 |
| 106971 | 2017-01-10 | 10:20:00 | 21.3 |
| 106971 | 2017-01-10 | 10:21:00 | 21.4 |
+-----------+------------+----------+------+
А вторая (dbo.datetime) содержит значения даты и времени.
+-------------+-----------+----------+
| DATE | TIME_A | TIME_B |
+-------------+-----------+----------+
| 2017-01-10 | 10:13:00 | 10:18:00 |
| 2017-01-11 | 09:18:00 | 10:28:00 |
| 2017-01-12 | 10:45:00 | 10:59:00 |
+-------------+-----------+----------+
Я хочу удалить строки в dbo.temp
, где время находится между двумя значениями, указанными в dbo.datetime
на любую заданную дату.SENSOR_ID
не важно, так как все данные между TIME_A
и TIME_B
должны быть удалены.
Например, я хочу, чтобы dbo.temp стал таким после удаления между TIME_A
и TIME_B
на 2017-01-10
:
+-----------+------------+----------+------+
| SENSOR_ID | DATE | TIME | TEMP |
+-----------+------------+----------+------+
| 106971 | 2017-01-10 | 10:05:00 | 21.1 |
| 106971 | 2017-01-10 | 10:06:00 | 21.1 |
| 106971 | 2017-01-10 | 10:07:00 | 21.2 |
| 106971 | 2017-01-10 | 10:08:00 | 21.1 |
| 106971 | 2017-01-10 | 10:09:00 | 21.1 |
| 106971 | 2017-01-10 | 10:10:00 | 21.2 |
| 106971 | 2017-01-10 | 10:11:00 | 21.2 |
| 106971 | 2017-01-10 | 10:12:00 | 21.2 |
| 106971 | 2017-01-10 | 10:19:00 | 21.3 |
| 106971 | 2017-01-10 | 10:20:00 | 21.3 |
| 106971 | 2017-01-10 | 10:21:00 | 21.4 |
+-----------+------------+----------+------+
Как мне это сделать?dbo.datetime
имеет ежедневные значения TIME_A
и TIME_B
в течение ~ 14 месяцев, поэтому не нужно вручную delete from dbo.temp where date = 'X' and time between 'Y' and 'Z'
каждый день.