2013-12-19 4 views
0

Немного застрял, конечный пользователь может выбрать год/месяц, а затем собрать данные, возвращающиеся на 5 месяцев. Мне хорошо установить начальную дату из столбца timestamp (yyyy-mm-dd hh: mm: ss), но я могу использовать last_day в сочетании с интервалом. Так что, если конечный пользователь выбирает Май 2013 они могут собрать все данные от 31 мая 2013 года по 1 января 2013 г.Застрял на датах, используя интервал

Ex. set @d2:=concat('2013-05','-01'); 
    set @d1:[email protected] - last_day(interval 5 month); 
    select @d1,@d2; 

Любая помощь/руководство высоко ценится.

ответ

1

Функция LAST_DAYtakes a date as an argument, а не интервал.

Казалось бы, что код вы хотите:

set @d1 := LAST_DAY(@d2 - INTERVAL 5 MONTH) 
+0

Спасибо за этот код, но ни одно доброе дело не остается безнаказанным. Я запускал код, но я заканчиваю «2012-12-31» = @ d1, а не «2013-01-01» = @ d1. Можно ли добавить день в @ d1? – Atwp67

+0

Если вы действительно хотите добавить день, вы можете сделать LAST_DAY (@ d2 - INTERVAL 5 MONTH) + INTERVAL 1 DAY' – Toote

+0

Вы рок! Пытаться к тому, что мне нужно. Спасибо за помощь. – Atwp67

Смежные вопросы