Я пытаюсь написать запрос SQL, который должен просто выбрать счет с определенной датой, а не временем.
select count(*) from xyz where time='2010-01-21'
, но он не возвращает никаких результатов.
Для SQL Server 2008 вы должны иметь возможность использовать тип данных date :
select count(*) from xyz where cast(time as date) = '2010-01-21'
Если у вас есть поле даты и времени, и вы хотите сопоставить дату:
select count(*) from xyz where time BETWEEN '2010-01-21' AND '2010-01-22 '
select count(*) from xyz where time BETWEEN '2010-01-21' AND '2010-01-22
Try (MySQL)
SELECT COUNT(*) FROM xyz WHERE DATE(datetime_col) = '2010-01-21'
в T-SQL (MSSQL) (некрасиво, но должно работать):
SELECT * FROM xyz WHERE CAST(CONVERT(varchar(8), datetime_col, 112) AS DATETIME) <= '2011-01-21'