MYSQL - 如何用随机日期填充行?

时间:2014-09-15 23:09:27

标签: mysql sql date

我必须更新名为“patron_filtrado”的表并填写一个名为“fecha_nacimiento”类型日期的列。随机日期,日期将在1920年至1980年之间。

我想过这样的事情

Update patron_filtrado
  SET fecha_nacimiento= DateAdd(d, ROUND(DateDiff(d, '1920-01-01', '2080-12-31') * RAND(CHECKSUM(NEWID())), 0),
  DATEADD(second,CHECKSUM(NEWID())%48000, '1920-01-01'))

我好吗?

1 个答案:

答案 0 :(得分:0)

修改自:How to update rows with a random date

NEWID比尝试使用RAND更好:RAND不会在单个SELECT或UPDATE中生成不同的值行(在SQL 2000中没有生成它,以防行为发生变化)。

尝试

SELECT DATEADD(DAY, ABS(CHECKSUM(NEWID()) % 22265), '1920-01-01')
FROM your_table

这将生成从1920-01-01到1980-12-31的日期。

如果您想更新,那么

UPDATE your_table
SET your_date_field = DATEADD(DAY, ABS(CHECKSUM(NEWID()) % 22265), '1920-01-01')
WHERE your_conditions