我会在phpMyAdmin中输入“as defined”作为时间戳字段的默认值,从今天开始+1个月?
使用MySQL 5.6.17,php 5.5.12,Apache 2.4.9,wampserver 2.5
我试过
1 month
strtotime('+1 month')
答案 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/pdo和http://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