2016-05-03 5 views
-1

Это мой запрос mysql для получения вчерашнего итога. Он работает от CRON, и я получаю разное общее количество в 3 раза. Он работает 3 раза в день. 7AM - 6067 12PM - 6670 7PM - 6670Mysql select Query total different in 2 different time

600 различные ??

SELECT COUNT(*) FROM `users_table` WHERE date(CONVERT_TZ(`reg_date`, '-0:00', '-7:00')) = DATE_ADD(CURDATE(), INTERVAL -1 day) 
+0

этот запрос возвращает «сегодняшний» регистрации, а не вчера, поэтому у вас есть ~ 2k новых регистраций –

+0

Вы видите ИНТЕРВАЛ -1 день. Он должен вернуть вчерашний итог нет? Можете ли вы предложить какие-либо изменения в запросе? – Viyog

+0

у вас есть между 'вчера' и' сегодня', между включенными –

ответ

0

Потому что каждый раз это зависит от вашего текущего времени. Вы должны учитывать только день.

SELECT COUNT(*) FROM `users_table` 
WHERE date(CONVERT_TZ(`reg_date`, '-0:00', '-7:00')) >= DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 1 DAY) 
AND date(CONVERT_TZ(`reg_date`, '-0:00', '-7:00')) <= DATE_SUB(CONCAT(CURDATE(), ' 23:59:59'), INTERVAL 1 DAY) 
+0

ах! Я попытался выполнить запрос и возвратил ту же сумму, и попробовал ваш запрос и возвратил ту же сумму, но другой был утром. Я обновил запрос l проверит утром. Надеюсь, что это решение работает. – Viyog

+0

@ user1464262, я надеюсь, что – Mojtaba

+0

Mojtaba Это все еще возврат defferent. : P .. нет, что было проблемой. Думаю думаю запрос есть проблема ... – Viyog