MySQL Query (помогите расшифровать)

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
876

День добрый,

для тех кто может быть поймет откуда этот request (netacct-mysql):

select sum(input) inp, sum(output) outp from traffic where ip = '$query_ip' and time between concat(EXTRACT(YEAR_MONTH FROM now()), '01') and now()

В частности интересует расшифровка конструкции:


time between concat(EXTRACT(YEAR_MONTH FROM now()), '01') and now()

Я так понимаю будут выбраны все записи которые попадут в интервал от сейчас до -1 месяц ?

Причем год и месяц "текущий" ?

Гуру MYSQL , выручайте :D маны почитал воедино свести не могу :)

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

С первого месяца текущего года, по сегодня.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#2
LEOnidUKG:
С первого месяца текущего года, по сегодня.

А можно пруф, а то мне кажется , что это все таки первый день текущего месяца....

---------- Добавлено 30.08.2012 в 19:23 ----------

Смотрите как проверяю:


mysql> select time from traffic where time between concat(EXTRACT(YEAR_MONTH FROM now()), '29') and now();
+---------------------+
| time |
+---------------------+
| 2012-08-30 11:00:00 |
| 2012-08-30 11:00:00 |
| 2012-08-30 12:00:00 |
| 2012-08-30 12:00:00 |
| 2012-08-29 11:00:00 |
+---------------------+
5 rows in set (0.00 sec)


mysql> select time from traffic where time between concat(EXTRACT(YEAR_MONTH FROM now()), '30') and now();
+---------------------+
| time |
+---------------------+
| 2012-08-30 11:00:00 |
| 2012-08-30 11:00:00 |
| 2012-08-30 12:00:00 |
| 2012-08-30 12:00:00 |
+---------------------+
4 rows in set (0.00 sec)

Выходит что интервал между "указанным числом текущего месяца" и "now()".

?

Онтарио
На сайте с 30.06.2009
Offline
37
#3

именно.


mysql> select concat(EXTRACT(YEAR_MONTH FROM now()), '29');
+----------------------------------------------+
| concat(EXTRACT(YEAR_MONTH FROM now()), '29') |
+----------------------------------------------+
| 20120829 |
+----------------------------------------------+
1 row in set (0.00 sec)

в вашем запросе получается от 2012-08-29 00:00:00 до текущего момента

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#4
Онтарио:
именно.


mysql> select concat(EXTRACT(YEAR_MONTH FROM now()), '29');
+----------------------------------------------+
| concat(EXTRACT(YEAR_MONTH FROM now()), '29') |
+----------------------------------------------+
| 20120829 |
+----------------------------------------------+
1 row in set (0.00 sec)


в вашем запросе получается от 2012-08-29 00:00:00 до текущего момента

Спасибо, теперь прояснилось :D А то голову ломал и ломал...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий