我想用过去的随机日期或空值填充表中的一列。我想在两个日期之间设置随机日期,1920 年 1 月 1 日和 2018 年 12 月 1 日,或 NULL VALUES。
我遇到了一些令人困惑的代码,这些代码可能是在特定时期内生成随机日期的解决方案,但它不适合空值。
INSERT INTO `FootballPlayers` VALUES (SELECT timestamp('2010-04-30') - INTERVAL FLOOR( RAND( ) * 366) DAY);
我希望表格的列有类似的内容。
+----------------+
| Date of Death |
+----------------+
| 20/10/1990 |
| 01/11/1988 |
| 04/02/2006 |
| NULL |
| 17/05/2011 |
| 22/04/1972 |
| NULL |
| NULL |
| 13/04/1989 |
| 10/03/1999 |
+----------------+
最佳答案
实际上您不会通过此查询获得任何空值,但如果您在这里使用一些 case 语句,那么您可以在此处获得此空值。 我使用了 when-case 语句并得到了准确的结果。 给你:
SELECT
CASE
WHEN (SELECT FLOOR( RAND( ) * 366)) BETWEEN 50 AND 255
THEN TIMESTAMP('2010-04-30') -INTERVAL FLOOR( RAND( ) * 366) DAY
ELSE NULL
END time_of_death
您也可以将其用于您的插入语句。
关于MySQL:使用随机日期或空值填充表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58726461/