SQL Server 2005 преобразование sysdate - PullRequest
0 голосов
/ 24 марта 2011

ОТ: 4/13/2010 12:00:00 AM
TO: 4/13/2010

SELECT CONVERT(varchar, EventDate, 101) AS EVENTDATE
FROM   db_Emp.dbo.tbl_EventsTable
WHERE  (EventDate BETWEEN '2010-04-01' AND '2010-04-30')

Я ожидаю 50 итогов, но результат всего 10.

Что я здесь не так делаю?

Ответы [ 3 ]

2 голосов
/ 24 марта 2011

Причина в том, что '2010-04-30' на самом деле означает 2010-04-30 00:00

Попробуйте это возможно?

SELECT * FROM Table 
WHERE MONTH(EventDate) = 4 
AND YEAR(EventDate) = 2010

Или:

SELECT * FROM Table 
WHERE EventDate BETWEEN '2010-04-01' AND '2010-04-30 23:59:59.999'
0 голосов
/ 24 марта 2011

Попробуйте

SELECT CONVERT(varchar, EventDate, 101) AS EVENTDATE
FROM   db_Emp.dbo.tbl_EventsTable
WHERE EventDate >= '2010-04-01' AND EventDate < '2010-05-01'
0 голосов
/ 24 марта 2011

Если вы пытаетесь узнать все даты событий в апреле 2010 года, вы можете сделать это следующим образом.

SELECT CONVERT(varchar, EventDate, 101) 
FROM db_Emp.dbo.tbl_EventsTable
WHERE EventDate LIKE 'Apr%2010%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...