У меня есть набор данных, где один столбец - это дата и время.Меня попросили все данные в таблице, между двумя диапазонами дат и в пределах этих дат, только с определенной шкалой времени.Например, у меня были данные в период с 1 февраля по 10 февраля 2009 года и с 12:00 до 07:00.(Мои диапазоны действительных дат превышают количество месяцев, я просто использую эти даты в качестве примера)
Я могу привести дату и время к двум различным столбцам, чтобы разделить их, как показано ниже:
select
name
,dateandtimetest
,cast(dateandtimetest as date) as JustDate
,cast(dateandtimetest as time) as JustTime
INTO #Test01
from [dbo].[TestTable]
Я поместил это в тестовую таблицу, чтобы посмотреть, смогу ли я использовать функцию between
в столбце JustTime, потому что я знаю, что я могу сделать between
в даты без проблем.Моя идея состояла в том, чтобы сделать их в двух отдельных таблицах и выполнить inner join
, чтобы получить нужные мне результаты
from #Test01
WHERE justtime between '00:00' and '05:00'
Приведенный выше код не даст мне данные, которые мне нужны.Я ломал голову над этим, поэтому любая помощь была бы очень признательна!
Тестовая таблица, которую я использую, чтобы попытаться получить правильный код, показана ниже:
|Name | DateAndTimeTest
-----------------------------------------|
|Lauren | 2019-02-01 04:14:00 |
|Paul | 2019-02-02 08:20:00 |
|Bill | 2019-02-03 12:00:00 |
|Graham | 2019-02-05 16:15:00 |
|Amy | 2019-02-06 02:43:00 |
|Jordan | 2019-02-06 03:00:00 |
|Sid | 2019-02-07 15:45:00 |
|Wes | 2019-02-18 01:11:00 |
|Adam | 2019-02-11 11:11:00 |
|Rhodesy | 2019-02-11 15:16:00 |
У меня естьТеперь попробовал и получил данные, чтобы показать мне информацию между временами в одну дату, используя приведенный ниже код, но теперь мне нужно будет запустить этот фрагмент кода для каждой даты в течение 3-месячного периода
select *
from dbo.TestTable
where DateAndTimeTest between '2019-02-11 00:00:00' and '2019-02-11 08:30:00'