我希望使用过去的随机日期或Null值填充表中的列。我希望将随机日期设置为介于1920年1月1日和2018年12月1日这两个日期之间,或设置为NULL值。
我遇到了一些令人困惑的代码,这些代码可能是在特定时期生成随机日期的解决方案,但它不适合空值。
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 |
+----------------+
3条答案
按热度按时间bnl4lu3b1#
实际上,通过这个查询不会得到任何空值,但如果在这里使用一些case语句,则可以在这里得到这个空值。我使用了when-case语句,并得到了确切的结果。下面是:
您也可以在insert语句中使用它。
qlzsbp2j2#
可以使用**ELT()**函数。
在这里,我生成了一个1到2之间的随机数沿着一个随机日期。我在
ELT()
函数中只提供了一个参数。当随机数为2时,它会给予你NULL
。你可以根据你需要的NULL
值的频率来调整这个参数Check demo here
pkln4tw63#
作为一个方便的单个IF表达式: