Использование Microsoft SQL 2008. У меня есть две таблицы, которые я хочу выбрать с текущей даты до первого дня этого месяца (или в течение одного месяца) , Предположим, что сегодняшняя дата - 05/09/2012, а столбец даты - «datecolumn». Fom, приведенные ниже таблицы, я должен получить только строки с наборами 6,7 из таблицы 1 и набора строк 9,2 из таблицы 2, поскольку эти даты относятся к тому же месяцу, что и 05/09/2012.Выберите диапазон дат из двух таблиц от настоящего дня до первого дня этого месяца
table1
4 02/01/2012
5 01/02/2011
6 05/01/2012
7 05/20/2012
table2
8 02/01/2012
9 05/14/2012
3 01/02/2011
2 05/18/2012
Я попытался это, но он не работал:
DECLARE @daterange
SET @daterange = (DATEPART(MONTH,GETDATE()) + '/' + DATEPART(YEAR,GETDATE()))
SELECT blah from table where (DATEPART(MONTH,datecolumn) + '/' + DATEPART(YEAR,datecolumn)) = @daterange
Что делать, если на столе2 есть строка 10 с датой 15.05.2012 , какой будет выход? –
Действительно, если это так (сопоставление всех записей за месяц), нет необходимости указывать диапазон в заголовке –
В таблице будут отображаться только даты в тот день, когда выполняется другая хранимая процедура. Не будет никаких будущих дат. Извините, если я смутил кого-нибудь. Я пытался быть уверенным, что возвращенные строки были в пределах этого месяца и не превышали первый или последний месяц того дня, когда запрос выполнялся. – Patriotec