首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL默认日期()+ 14天,列?

问MySQL默认日期()+ 14天,列?
EN

Stack Overflow用户
提问于 2012-02-08 09:40:27
回答 8查看 15.4K关注 0票数 6

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

任务-“到期日期”

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

我试图实现的是mysql在表列中插入一个"expiry_date“的方法,该列在表中创建行的日期后14天。

例如:

代码语言:javascript
复制
product_name - foo
entry_date - 2012-02-01
expiry_date - 2012-02-15

我有一种感觉,除非使用存储过程,否则在mysql中不可能这样做。

我很乐意用PHP来做这件事,但是我希望如果我能用mysql来做它,它会在我的系统中留下较少的出错空间。

谢谢

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-02-08 11:02:07

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

代码语言:javascript
复制
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天时间。

票数 10
EN

Stack Overflow用户

发布于 2012-02-08 09:45:04

您可以在MySQL中使用MySQL方法。

代码语言:javascript
复制
DATE_ADD(date_starts,INTERVAL 14 DAY)

例如:

代码语言:javascript
复制
UPDATE events SET date_starts = DATE_ADD(date_starts,INTERVAL 14 DAY) WHERE event_id = 3;

有关更多细节,请访问这里。

票数 3
EN

Stack Overflow用户

发布于 2012-02-08 09:44:22

代码语言:javascript
复制
date = DATE_ADD(NOW(), INTERVAL 14 DAY)

或者如前所述,将该字段(该field=的属性)的表结构更改为"on Update CURRENT_TIMESTAMP“

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9190758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档