У меня есть таблица (например, tableA), например:
| Name | Startdate | Enddate | |---------------------------------| | a | 2012-07-01 | 2013-06-30 | | b | 2011-05-01 | 2012-04-30 | | c | 2010-01-01 | 2013-12-31 | | d | 2013-01-01 | 2014-12-31 | | e | 2011-07-01 | 2012-06-30 |
Я хочу получить имя из таблицы, кто активен между 2012-05-01
и 2012-10-31
. Из приведенной выше таблицы результат должен быть a,c и e.
Я сделал следующее:
SELECT Name FROM tableA WHERE startdate<='2012-05-01' AND enddate>='2012-10-31'
Но я не получаю правильный результат.
startdate
иenddate
? - person Vishwanath Dalvi   schedule 12.07.2012DATETIME
- и этот форматyyyyMMdd
- поэтому попробуйте:...WHERE startdate <= '20120501' AND enddate >= '20121031'
. Формат с дефисами небезопасен и может быть неверно истолкован в зависимости от языковых настроек вашего SQL Server. Кроме того, ваши операторы сравнения также должны быть обратными — они должны быть больше или равны20120501
и меньше или равны20121031
— верно? - person marc_s   schedule 12.07.2012YYYY-MM-DD
- они могут быть неоднозначными для SQL Server. Лучше просто использоватьYYYYMMDD
без символов-разделителей. - person Damien_The_Unbeliever   schedule 12.07.2012yyyyMMDD
- person Himanshu Jansari   schedule 12.07.2012