0

请原谅我。我是一个绝对的新手,我需要 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 名成员的健身房网站进行演示,但添加的成员值都具有相同的开始日期和时间。尝试在数据库中将它们分成不同的月度注册,例如8 月不同日期和时间注册的50 人,10 月的35 人等。希望现在更清楚。谢谢 -

当我尝试以下答案之一时,我收到此错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '$randomDate = rand(1,31)' 附近使用正确的语法。因此,理想情况下,我可以通过最少的编辑复制并粘贴到 phpmyadmin 中的代码将不胜感激. 如果可能,按顺序排列。对于一个完全理解和执行的假人。

4

2 回答 2

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)

那么那个人应该将时间戳设置为当天的随机分钟。

于 2012-05-28T17:28:02.617 回答
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");
于 2012-05-28T18:07:33.397 回答