Здравствуйте, Аноним, Вы писали:
А>Имеется SQL, возвращающий 0 записей .
А>SELECT top 50 * А>FROM Quote А>WHERE TradeDate >= '01-Jan-2011'--(1) А> AND TradeDate <= '02-Jan-2011' --(2)
А>при комментированном (1) или комментированном (2) записи возвращаются, и они есть в базе.
А>Between ведет себя аналогично.
А>Как такое может быть?
А Если написать так:
[sql]
SELECT TOP 50 * FROM QUOTE WHERE CAST(TradeDate AS DATE)>='20110101'
AND CAST(TradeDate AS DATE)<='20110102'
[sql]
Re[2]: MS SQL 2008 запрос.
От:
Аноним
Дата:
05.12.11 21:59
Оценка:
тоже самое. по раздельности то они работают нормально, дело не в датах а в компаунде. Кстати, интересно, Between это самостоятельная команда или синтаксический сахар?
Таки недопол, есть записи или нет? В твоём описании непонятно. В конце концов, если, например, есть записи за 31 декабря и 3 января, то именно так и должен вести себя запрос!
Здравствуйте, Аноним, Вы писали:
А>Как такое может быть?
Quote.TradeDate какого типа?
Покажи первые... ммм... ну десять записей результата с убранным (1) а потом с убраным (2).
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Здравствуйте, Аноним, Вы писали:
А>при комментированном (1) или комментированном (2) записи возвращаются, и они есть в базе.
А>Between ведет себя аналогично.
А>Как такое может быть?
Подозреваю, вы не совсем понимаете что делает AND и на самом деле вам нужен не AND, а OR.