Найти все строки, где столбец даты имеет метку времени = 00: 00: 00.000 - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть таблица, в которой один столбец в качестве registrationDate, тип которого datetime. Мне нужно найти все строки с регистрационной датой как отметку времени 00: 00: 00.000. например:

registrationDate: '2019-03-20 00:00:00.000'

Мне нужно запросить нечто подобное, как показано ниже:

select * from table where registrationDate like '%00:00:00.000';

Ответы [ 5 ]

3 голосов
/ 04 апреля 2019

Вы можете разыграть дату и время как время:

WHERE CAST(registrationDate AS TIME) = '00:00'
3 голосов
/ 04 апреля 2019
WHERE registrationDate = CONVERT(date, registrationDate);
1 голос
/ 04 апреля 2019

См. ОБНОВЛЕНИЕ ниже

Create Table #tbl
(
registrationDate Datetime
)
Insert Into #tbl Values
('2019-03-20 00:00:00.000'),
('2019-03-20 00:00:25.000')

Запрос

Select * From #tbl
Where Cast(registrationDate As Time) = '00:00:00.0000000'

Результат:

registrationDate
2019-03-20 00:00:00.000

Обновление: если вам действительно нужно использовать «Мне нравится»

Select * From #tbl
Where convert(VarChar(50), registrationDate, 121) Like '%00:00:00.000'
0 голосов
/ 04 апреля 2019

Следующее выражение получает для каждого значения datetime соответствующую дату с временной частью:

dateadd(day, datediff(day, 0, '<date_time>'), 0)

Следовательно, следующее будет работать:

create table foo (id int, registrationDate datetime)
insert foo values
   (1, '2019-04-04T03:22:48.00'),
   (2, '2019-04-04T00:00:00.00')
select * from foo
where registrationDate =
      dateadd(day, datediff(day, 0, registrationDate), 0)
0 голосов
/ 04 апреля 2019
select * from table where FORMAT(registrationDate, 'HH:mm:ss:ms') ='00:00:00.000'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...