如何在phpMyAdmin中将默认时间戳设置为+1个月

时间:2014-05-23 06:46:11

标签: php mysql phpmyadmin

我会在phpMyAdmin中输入“as defined”作为时间戳字段的默认值,从今天开始+1个月?

使用MySQL 5.6.17,php 5.5.12,Apache 2.4.9,wampserver 2.5

我试过

1 month

strtotime('+1 month')

2 个答案:

答案 0 :(得分:2)

根据我的阅读,phpmyadmin"定义为" value基本上是DEFAULT查询中CREATE TABLE值的值。如果是这样,您实际上无法提供PHP函数作为默认值。然后你有(至少)两个选项。

一,您可以在INSERT进入数据库时​​设置值:

$myDate = date('Y-m-d H:i:s', strtotime('+1 month'));

并运行您的查询:

INSERT INTO myTable (myDate) VALUES ('{$myDate}');

(但是,您应该使用mysqli或PDO和数据绑定来设置查询中的值。C.f。http://us1.php.net/pdohttp://us2.php.net/mysqli)。

两个,或者你可以创建一个触发器:

CREATE TRIGGER myTiggerName
BEFORE INSERT ON myTable
FOR EACH ROW
SET NEW.myDate = DATE_ADD(NOW(), INTERVAL 1 MONTH);

这可能是你最接近你想做的事情。只要在myDate表中插入一行,它就会将NOW() + 1 MONTH列设置为myTable

在上面的示例中,触发器将始终设置myDate。如果您只想在列为空时设置它,您可以尝试:

CREATE TRIGGER myTiggerName
BEFORE INSERT ON myTable
FOR EACH ROW
IF NEW.myDate IS NULL THEN
  SET NEW.myDate = DATE_ADD(NOW(), INTERVAL 1 MONTH);
END IF;

答案 1 :(得分:1)

我建议您的模型处理此问题,而不是SQL。

尝试按照以下方式获取日期:

select timestamp + interval '2' day from xyz