- Как реализовать переменную $date в bash скрипте, phpcoder, 08:47 , 10-Фев-11 (1)
> Уважаемые знатоки perl, встала задача вытаскивать определенные данные из таблиц mysql еженедельно > по понедельникам, было решено написать bash скрипт и засунуть его в > крон по понедельникам, ломаю голову как сделать чтобы каждую неделю в > переменной "and time>=" менялось значение за предыдущую неделю, была идея выводить > командой date, но вот как высчитать описание недели? > Пример запроса: > select day(time),hour(time), sum(msg_len) from info where (locate('***',***)=1 or locate('***',***)=1) > and time>='2010-12-20 00:00:00' and time<'2010-12-27 00:00:00' group by *,* order by > time; date -d 'week ago' попробуйте (поищите примеры в info date, кажется), но я бы лучше воспользовался функциями вашей СУБД. Во всяком случае, в MySQL такое точно возможно.
- Как реализовать переменную $date в bash скрипте, madmax11, 08:55 , 10-Фев-11 (2)
>[оверквотинг удален] >> крон по понедельникам, ломаю голову как сделать чтобы каждую неделю в >> переменной "and time>=" менялось значение за предыдущую неделю, была идея выводить >> командой date, но вот как высчитать описание недели? >> Пример запроса: >> select day(time),hour(time), sum(msg_len) from info where (locate('***',***)=1 or locate('***',***)=1) >> and time>='2010-12-20 00:00:00' and time<'2010-12-27 00:00:00' group by *,* order by >> time; > date -d 'week ago' попробуйте (поищите примеры в info date, кажется), но > я бы лучше воспользовался функциями вашей СУБД. Во всяком случае, в > MySQL такое точно возможно.Да, но ведь еще нужно инсертить эти данные в "and time>=" и причем "and time>=" две штуки, описывающие неделю, как же именно проинсертить нужные данные в две одинаковых "and time>=", по поводу mysql к сожалению пока вариантов не вижу, но погуглю, спасибо за совет.
- Как реализовать переменную $date в bash скрипте, phpcoder, 09:06 , 10-Фев-11 (3)
> Да, но ведь еще нужно инсертить эти данные в "and time>=" и > причем "and time>=" две штуки, описывающие неделю, как же именно проинсертить > нужные данные в две одинаковых "and time>=",Не понял вас. Вы не знаете как результат команды вставить в переменную в шелле? Что не получается или не понятно? printf "select day(time),hour(time), sum(msg_len) from info where (locate('***',***)=1 or locate('***',***)=1) and time>='%s' and time<'%s' group by *,* order by time;" "$(date -d 'week ago' '+%F 00:00:00')" "$(date '+%F 00:00:00')" | mysql -u user -ppassword database -h host > по поводу mysql к > сожалению пока вариантов не вижу, но погуглю, спасибо за совет. http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functio...
- Как реализовать переменную $date в bash скрипте, madmax11, 09:30 , 10-Фев-11 (4)
>[оверквотинг удален] >> нужные данные в две одинаковых "and time>=", > Не понял вас. Вы не знаете как результат команды вставить в переменную > в шелле? Что не получается или не понятно? > printf "select day(time),hour(time), sum(msg_len) from info where (locate('***',***)=1 > or locate('***',***)=1) and time>='%s' and time<'%s' group by *,* order by > time;" "$(date -d 'week ago' '+%F 00:00:00')" "$(date '+%F 00:00:00')" | > mysql -u user -ppassword database -h host >> по поводу mysql к >> сожалению пока вариантов не вижу, но погуглю, спасибо за совет. > http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functio... Мне непонятно как в строку запроса в bash скрипте к мускулю типа select day(time),hour(time), sum(msg_len) from info where (locate('***',***)=1 or locate('***',***)=1) and time>='2010-12-20 00:00:00' and time<'2010-12-27 00:00:00' group by *,* order by time; в двух параметрах and time>='2010-12-20 00:00:00' and time<'2010-12-27 00:00:00 описывающих неделю, сделать так, чтобы каждую неделю они возрастали по числам на 7 дней.
- Как реализовать переменную $date в bash скрипте, phpcoder, 09:44 , 10-Фев-11 (5)
> сделать так, чтобы каждую неделю они возрастали по числам на 7 дней.Используйте текущую дату (NOW(), CURDATE()) как точку отсчета.
- Как реализовать переменную $date в bash скрипте, madmax11, 09:54 , 10-Фев-11 (6)
- Как реализовать переменную $date в bash скрипте, madmax11, 14:12 , 10-Фев-11 (7)
>>> сделать так, чтобы каждую неделю они возрастали по числам на 7 дней. >> Используйте текущую дату (NOW(), CURDATE()) как точку отсчета.И все же, проблема до конца не решилась, в целом в запросе к мускулю добился заполнения текущей даты в запросе, получилось примерно следующее: select day(time),hour(time), sum(msg_len) from info where (locate('***',***)=1 or locate('***',***)=1) and time>='2010-12-20 00:00:00' and time<'СURDATE() 00:00:00' group by *,* order by time; то есть я добился результата по текущей дате, но вот как быть со первым значением and time>='2010-12-20 оно должно уменьшаться ровно на семь дней от CURDATE(), помогите советом, весь мосг себе изломал=(
- Как реализовать переменную $date в bash скрипте, phpcoder, 14:24 , 10-Фев-11 (8)
> select day(time),hour(time), sum(msg_len) from info where (locate('***',***)=1 or locate('***',***)=1) > and time>='2010-12-20 00:00:00' and time<'СURDATE() 00:00:00' group by *,* order by > time; то есть я добился результата по текущей дате, но > вот как быть со первым значением and time>='2010-12-20 оно должно > уменьшаться ровно на семь дней от CURDATE(), помогите советом, весь мосг > себе изломал=( На лицо незнание SQL :( Почитайте что-нибудь по этой теме, либо, на худой конец, поищите примеры работы с датой и временем в гугле. Я могу вам подсказать, но не буду потому что делать за вас у меня нет времени, объяснять тоже. Вы либо должны сами разобраться, либо обратитесь к более квалифицированному программисту/администратору. (Есть ещё вариант подождать других участников форума, которые дадут вам ответ "на тарелочке с голубой каёмочкой".)
- Как реализовать переменную $date в bash скрипте, madmax11, 15:03 , 10-Фев-11 (9)
>[оверквотинг удален] >> вот как быть со первым значением and time>='2010-12-20 оно должно >> уменьшаться ровно на семь дней от CURDATE(), помогите советом, весь мосг >> себе изломал=( > На лицо незнание SQL :( Почитайте что-нибудь по этой теме, либо, на > худой конец, поищите примеры работы с датой и временем в гугле. > Я могу вам подсказать, но не буду потому что делать за вас > у меня нет времени, объяснять тоже. Вы либо должны сами разобраться, > либо обратитесь к более квалифицированному программисту/администратору. (Есть ещё вариант > подождать других участников форума, которые дадут вам ответ "на тарелочке с > голубой каёмочкой".) Да, не спорю, у меня нету знаний в области баз данных, поскольку это не совсем моя работа, просто в данный момент возникла необходимость решить вопрос, а кроме меня как бы некому, в общем вы дали мне намек на счет функций mysql, а я уже закончил=) при помощи DATE_SUB(CURDATE(), INTERVAL 7 DAY) в первом случае, и DATE_SUB(NOW(), interval 1 day) во втором случае, Спасибо за помоЩь=))
|