php - MySQL 默认 date() + 14 天,对于一个列?

标签 php mysql date default-value

我想知道以下是否可以通过 MySQL 完成,还是必须使用 PHP 完成。

任务 - “到期日”

  1. 用户输入产品名称
  2. 用户点击提交表单按钮
  3. 数据被POST然后发送到MySQL
  4. 到期日 = 现在的日期 + 14 天

我想要实现的是一种让 mysql 在表列中插入“expiry_date”的方法,该列等于在该表中创建行的日期后 14 天。

例如

product_name - foo
entry_date - 2012-02-01
expiry_date - 2012-02-15

我有一种感觉,除非使用存储过程,否则可能无法在 mysql 中执行此操作。

我很高兴用 PHP 来做,但是我希望如果我可以用 mysql 来做,它会在我的系统中留下更少的错误范围。

谢谢

最佳答案

创建一个表并为该表设置触发器。

CREATE TABLE product(
    product_id INT PRIMARY KEY,
    product VARCHAR(40),
    entryDate DATETIME,
    expDate DATETIME
);

CREATE TRIGGER test_trigger BEFORE INSERT ON `product` 
FOR EACH ROW SET
    NEW.entryDate = IFNULL(NEW.entryDate, NOW()),
    NEW.expDate = TIMESTAMPADD(DAY, 14, NEW.entryDate);

在每次插入表时,触发器将 entryDate 设置为当前时间,并将 expDate 设置为 14 天时间。

关于php - MySQL 默认 date() + 14 天,对于一个列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9190758/

相关文章:

sql-server - 比较日期 < 或 DateDiff 哪个更好?

javascript - 自定义 Ajax 文件 uploader ,.AjaxSubmit() 问题

php - 翻译 Woocommerce 中的结帐字段验证错误通知

php - CodeIgniter "like()"函数在搜索词中带有 % 通配符

javascript - Ajax 发送数据并从数据库中获取值

php - 如果使用 PHP 用户的时区发生更改,如何处理存储在数据库中的用户数据

Java用时间戳计算时间

php - 如何获取 img 标签的 src 属性?

mysql - 将多个表与一个主表连接起来

android - 如何在 Android 中获取当前时间和日期