2016-05-31 2 views
-1

У меня есть таблицы в MySQL, которые содержат данные, такие как,Дата недели в MySQL

Week No. Month Year 
    1  April 2016 
    4  April 2016 

Мне нужно найти дату в понедельник для конкретной недели.

+1

У вас есть таблица дат? – sagi

+4

Как вы определяете «неделя нет»? – eggyal

+0

Пожалуйста, сообщите нам, что вы попробовали alreadu и что не работает –

ответ

0

Я думаю, что это должно сделать трюк, возможно, вам придется настроить тип параметра y.

DELIMITER $$ 
CREATE FUNCTION `calc_date`(y TEXT, m TEXT, w INT) 
RETURNS date 
BEGIN 
    DECLARE d DATE; 
    SET d = DATE_ADD(STR_TO_DATE(CONCAT(CONCAT(CONCAT(y,'-'),m),'-01'), '%Y-%M-%d'), INTERVAL w week); 
    RETURN DATE_SUB(d, INTERVAL (DAYOFWEEK(d) + 5)%7 DAY); 
end; 
$$ 
DELIMITER ; 

то вам просто нужно позвонить

select calc_date(`Year`,`Month`,`Week No.`) from yourtable; 
Смежные вопросы