У меня есть столбец типа данных date
Когда я запускаю следующие операторы:
select count(*) as dt from dbo.logs where dateLogged>= '2018-02-01' and dateLogged < ='2018-02-30';
Я получаю Conversion failed when converting date and/or time from character string.
вы пытаетесь использовать в своем запросе?!
@ Белка Боже !!!!! как мне выбрать ваш ответ?
Не могу, это комментарий. Не волнуйтесь.
Большое спасибо @Squirrel !!!


select count(*) as dt from dbo.logs where CAST(dateLogged as date) >= '2018-02-01' and CAST(dateLogged as date) < ='2018-02-30';
OR
select count(*) as dt from dbo.logs where CAST(dateLogged as date) BETWEEN '2018-02-01' and '2018-02-30';
Хотя этот фрагмент кода может быть решением, включая объяснение действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос для читателей в будущем, и эти люди могут не знать причины вашего предложения кода.
'2018-02-30' НЕ ЯВЛЯЕТСЯ ДЕЙСТВИТЕЛЬНЫМ ДАТОМ. Замените это действительной датой и попробуйте следующий запрос:
select count(*) as dt from dbo.logs
where cast(dateLogged as date)
between '2018-02-01' and '2018-02-28';
попробуйте это: ->
установить формат даты dmy
выберите count (*) как dt из dbo.logs где dateLogged> = '01 -02-2018 'и dateLogged <= '30-02-2018'
Попробуйте преобразовать столбец dateLogged в дату, у вас есть два варианта
Cast(dateLogged as datetime)
или же
Convert(varchar(30),'7/7/2011',102)
с каких это пор в феврале 30 дней?