游标由于安全性问题,感觉用到的地方还是比较少,这里由于测试数据需要批量更新用到了,所以就mark一下。
本次使用游标目的是:遍历数据表,同时更新DATETIME类型的字段为某范围内随机时间。
首先是生成范围内随机日期的sql:
SELECT CONCAT(FLOOR(1980 + (RAND() * 35)),'-',LPAD(FLOOR(1 + (RAND() * 12)),2,0),'-',LPAD(FLOOR(3 + (RAND() * 8)),2,0));
然后是生成随机时间的sql:
SELECT CONCAT(LPAD(FLOOR(0 + (RAND() * 23)),2,0),':',LPAD(FLOOR(0 + (RAND() * 59)),2,0),':',LPAD(FLOOR(0 + (RAND() * 59)),2,0));
将日期和时间拼起来,就可以赋值了,下面是存储过程: