Как обновлять / вставлять случайные даты в SQL в пределах заданного диапазона дат

Пожалуйста, прости меня. Я абсолютный новичок, и мне нужна помощь с этой таблицей в phpmyadmin

Моя таблица имеет следующие столбцы:

Primary_ID, Begin_Date, End_Date, Timestamp 

Как обновить в phpmyadmin, выбранные строки со случайным образом созданным begin_dates и меткой времени в пределах заданного диапазона дат (например: 30 дней в месяц). Например, желаемого результата

 Primary_id--- Begin_Date -------------Timestamp 1.------------2008-09-02--------------2008-09-02 21:48:09 2.------------2008-09-03--------------2008-09-03 15:19:01 3.------------2008-09-14--------------2008-09-14 01:23:12 4.------------2008-09-27--------------2008-09-27 19:03:59 

Диапазон дат между 2008-09-01 и 2008-09-31. Время переменное 24 часа

Я новичок, поэтому синтаксис, который будет работать в phpmyadmin, очень поможет.

Мы делаем презентацию для сайта тренажерного зала с 500 членами, но добавленные значения членов имеют одну и ту же дату и время начала. Попытка разделить их на различные месячные регистрации в базе данных, например, 50 человек, зарегистрированных в августе в разные дни и в разы, 35 человек в октябре и т. Д. Надеюсь, что теперь это ясно. Благодаря –

Когда я попробую один из нижеперечисленных ответов, я получаю эту ошибку: # 1064 – У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '$ randomDate = rand (1,31)' в строке 1. Поэтому в идеале код, который я могу скопировать и вставить в phpmyadmin с минимальным редактированием, будет оценен , По возможности, в последовательности. Для полного манекена понять и выполнить.

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

Чтобы получить случайные числа, вы можете использовать rand (). Получите один для даты, часа, минуты и секунды.

 $randomDate = rand(1,31); $randomHour = rand(1,24); $randomMinute = rand(0,59); $randomSecond = rand(0,59); 

Вам понадобятся ведущие нули (03 вместо 3), чтобы вы могли использовать str_pad для их добавления, если это необходимо

 $randomDate = str_pad($randomDate, 2, '0',STR_PAD_LEFT); //The '2' is how many characters you want total //The '0' is what will be added to the left if the value is short a character 

Сделайте то же самое со всеми вашими другими случайными значениями. Просто потому, что мне нравятся аккуратные запросы, вы должны составить свои последние строки обновлений.

 $newDate = '2008-09-'.$randomDate; $newTime = $randomHour.':'.$randomMinute.':'.$randomSecond; 

Теперь я не знаю, как вы определяете, какие строки вы хотите обновить, поэтому я оставлю это до вас. Например, я покажу вам запрос, если вы хотите сделать это с помощью Primary_id 3:

 $x = mysql_query("UPDATE yourTable SET Begin_Date=\"$newDate\", Timestamp=\"$newTime\" WHERE Primary_id = 3"); 

что-то вроде:

insert into myTable (begin_date) values date_add('2008-09-01', INTERVAL RAND()*30 DAY)

который должен создать новую строку со случайным begin_date

update myTable set Timestamp = date_add(begin_date, INTERVAL RAND()*1440 MINUTE)

то нужно установить временную метку на случайную минуту того дня.