使用 MySQL INSERT INTO 语句插入数据并设置随机时间戳(24小时至48小时前)

在使用 MySQL 插入数据时,有时需要设置一个随机的时间戳,例如模拟用户行为数据。以下代码演示如何将数据插入 ask_questions 表,并将 created_atupdated_at 设置为 24 小时至 48 小时前的随机时间。

INSERT INTO ask_questions (user_id, category_id, title, description, price, hide, status, created_at, updated_at)
VALUES 
    (1, 9, '问题标题', '问题描述', 1, 1, 1, @timestamp1 := DATE_SUB(NOW(), INTERVAL FLOOR(RAND() * 24 + 24) HOUR), @timestamp1);

解释:

  1. DATE_SUB(NOW(), INTERVAL FLOOR(RAND() * 24 + 24) HOUR): 该表达式使用 DATE_SUB 函数,从当前时间 NOW() 减去一个随机小时数。
  2. FLOOR(RAND() * 24 + 24): 使用 RAND() 函数生成一个 0 到 1 之间的随机数,乘以 24 并加上 24,得到一个 24 到 48 之间的随机整数,代表要减去的小时数。
  3. @timestamp1 := ...: 将生成的随机时间赋值给变量 @timestamp1,并同时作为 created_atupdated_at 的值。

注意:

  • 请确保 ask_questions 表中存在 created_atupdated_at 列,并且数据类型为 DATETIMETIMESTAMP
  • 该代码将生成一个介于 24 小时至 48 小时之前的随机时间。如果你需要其他时间范围,请调整 FLOOR(RAND() * 24 + 24) 表达式中的数值。

原文地址: https://www.cveoy.top/t/topic/lO2w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录