0
在mysql db中的表X中,我希望在每个行的1/01/1990之前的每个行中插入随机周年日期,并在新的空列中显示。请帮我出如伊马新手在MySQLMySQL:根据其他日期属性插入随机日期值
在mysql db中的表X中,我希望在每个行的1/01/1990之前的每个行中插入随机周年日期,并在新的空列中显示。请帮我出如伊马新手在MySQLMySQL:根据其他日期属性插入随机日期值
您可以使用RAND()
来生成一个范围内的随机整数(让我们在23和75之间的范围说的)这样
SELECT FLOOR(23 + RAND() * (75 - 23))
你的更新语句,以填补你的表anniversary
列,然后可能看起来像
UPDATE person
SET anniversary = dob + INTERVAL FLOOR(23 + RAND() * (75 - 23)) YEAR
WHERE dob < '1990-01-01'
让我们做一个快速的测试
mysql> CREATE TABLE person -> ( -> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> name varchar(32) , -> dob DATE , -> anniversary DATE ->); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO person (name, dob) -> VALUES -> ('John', '1972-01-15'), -> ('Phil', '1964-05-23'), -> ('Mark', '1948-12-10'), -> ('Steven', '1991-02-28'), -> ('Helen', '1987-07-01'); Query OK, 5 rows affected (0.00 sec) Records: 5 Duplicates: 0 Warnings: 0 mysql> UPDATE person -> SET anniversary = dob + INTERVAL FLOOR(23 + RAND() * (75 - 23)) YEAR -> WHERE dob SELECT * FROM person; +----+--------+------------+-------------+ | id | name | dob | anniversary | +----+--------+------------+-------------+ | 1 | John | 1972-01-15 | 1999-01-15 | | 2 | Phil | 1964-05-23 | 2022-05-23 | | 3 | Mark | 1948-12-10 | 1979-12-10 | | 4 | Steven | 1991-02-28 | NULL | | 5 | Helen | 1987-07-01 | 2050-07-01 | +----+--------+------------+-------------+ 5 rows in set (0.00 sec)
在上述案件中,周年日期超出了当前日期,如果还涉及该案件,情况会更好。无论如何感谢您的帮助。 – user3030707
单程 - 您可以使用任何语言脚本和其他方式插入 - 使用商店程序员! – Suleman
*随机周年日期*表示什么意思? – peterm
我的意思是我只是用一些随机日期来填充我的数据库,它应该满足上面提到的条件,比如他的周年日期应该在他的dob之后,并且应该从他的出生日期起至少有23年的差距。 – user3030707