2015-04-25 2 views
2

У меня есть статистика игрока, которую я хотел бы опубликовать с определенных дат. На данный момент я вижу статистику в базе данных с самого начала.Выберите данные MySQL, начиная с определенной даты

SELECT name, 
     bankmoney AS Bank, 
     Playerkills AS 'Player Kills', 
     deathcount AS Deaths , 
     aikills AS 'AI Kills', 
     teamkills AS 'Team Kills', 
     revivecount AS Revives , 
     capturecount AS 'Territories Captured', 
     LastModified AS 'Last Seen' 
FROM playerinfo 
JOIN playerstats 
ON playerinfo.UID = playerstats.PlayerUID 
ORDER BY BankMoney DESC; 

Но я хотел бы представить статистику с начала дня и начала недели.

Как бы я это сделал?

+2

Каково название вашей колонки даты, если таковая имеется? Вы хотите с начала недели до настоящего времени, или есть другая дата окончания? –

+0

И какой день недели вы считаете первым днем ​​недели? Не все системы предполагают, что понедельник станет первым днем ​​недели. – user1849060

+0

Я подумывал использовать системное время, чтобы выбрать понедельник в качестве начала недели. Нет столбца даты. – Spitfire

ответ

0

, например, если вы хотите видеть только статистику с LastModified больше или равно сегодня просто добавить где предложение:

WHERE 'Last Seen' >= CURRENT_DATE() 
+0

Я не хочу добавлять дату в любое время. Я надеялся, что смогу использовать системное время как-то – Spitfire

+0

Извините, я не получаю ваш комментарий, вы можете использовать системное время, конечно. – maalls

+0

Как мне это сделать? – Spitfire

1

На основе замечаний Spitfire, в, чтобы получить последние 24 часа данных, которые можно использовать INTERVAL и верните необходимое количество дней, которое вы хотите. NOW() даст вам время выполнения запроса, а BETWEEN позволит вам выполнять поиск между двумя днями. Так что часть запроса может быть:

WHERE 'Last Seen' BETWEEN NOW() AND NOW() - INTERVAL 1 DAY; 

неделя потребует изменений от 1 дня до 7.

+0

Я пробовал это. выбрать имя, bankmoney как Банк, Playerkills как «Убийства игроков», Deathcount как Deaths, aikills как «AI Kills», командные команды как «Team Kills», revivecount как Revives, capturecount как «Захваченные территории», LastModified как «Последнее посещение» from playerinfo присоединяйтесь к playerstats на playerinfo.UID = playerstats.PlayerUID заказ от BankMoney DESC; ГДЕ «Последнее посещение» МЕЖДУ СЕЙЧАС() И ТЕПЕРЬ() ИНТЕРВАЛ - 7 ДНЕЙ; Но в нем говорится, что есть ошибка. Я не очень хорошо разбираюсь в SQL – Spitfire

+0

Какая ошибка? Также возможно поставить предложение WHERE перед предложением ORDER BY. – user1849060

+0

Ошибка: Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «INTERVAL - 7 DAY» по строке 5 \t 0.110 sec – Spitfire

1

Попробуйте. SELECT * from table_name where a.exam_date BETWEEN $date1 AND $date2;

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