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