请原谅我。我是一个绝对的新手,我需要帮助phpmyadmin中的这个表
我的表格包含以下列:
Primary_ID, Begin_Date, End_Date, Timestamp
如何在phpmyadmin中更新所选行,并在指定日期范围内随机生成begin_dates和timestamp(例如:一个月内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名成员的健身房网站进行演示,但所添加的会员价值都具有相同的开始日期和时间。试图在数据库中将它们分成不同的月度注册,例如,8月份在不同日期和时间注册50人,10月份注册35人等。希望现在更清楚。谢谢 -
当我尝试以下其中一个答案时,我收到此错误:#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第1行的'$ randomDate = rand(1,31)'附近使用正确的语法。理想情况下,我可以复制并粘贴到phpmyadmin中的代码,只需最少的编辑即可。 。如果可能的话。为了理解和执行一个完整的假人。
答案 0 :(得分:0)
类似的东西:
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)
然后应该将时间戳设置为当天的随机分钟。
答案 1 :(得分:0)
我从这样的事情开始。其中一堆可以合并,但我把它分开,这样你就可以看到我在做什么。
要获得随机数,您可以使用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");