對於時間戳字段的默認值,我將在phpMyAdmin的「按定義」中輸入什麼內容以從今天起獲得+1個月?如何在phpMyAdmin中將默認時間戳設置爲+1月
使用MySQL 5.6.17,PHP 5.5.12,阿帕奇2.4.9,wampserver 2.5
我已經試過
1 month
strtotime('+1 month')
對於時間戳字段的默認值,我將在phpMyAdmin的「按定義」中輸入什麼內容以從今天起獲得+1個月?如何在phpMyAdmin中將默認時間戳設置爲+1月
使用MySQL 5.6.17,PHP 5.5.12,阿帕奇2.4.9,wampserver 2.5
我已經試過
1 month
strtotime('+1 month')
從我讀過什麼,phpmyadmin「定義」值基本上是DEFAULT
值在CREATE TABLE
查詢中的值。如果這是真的,你實際上不能提供一個PHP函數作爲默認值。然後你有(至少)兩個選項。
一個,你可以設置的值,當你INSERT
到數據庫:
$myDate = date('Y-m-d H:i:s', strtotime('+1 month'));
並運行查詢:
INSERT INTO myTable (myDate) VALUES ('{$myDate}');
(雖然,你使用mysqli或PDO和數據綁定以在您的查詢中設置該值。Cf 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);
這可能是最接近你想要做什麼。無論何時向myTable
表中插入一行,它都會將myDate
列設置爲NOW() + 1 MONTH
。
在上例中,觸發器將始終設置爲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;
我會建議處理這個由你的模型,而不是SQL。
嘗試獲得的日期有點像這樣:
select timestamp + interval '2' day from xyz
雖然你的問題很有趣,我會建議通過PHP而不是通過PMA處理這個問題。讓模型處理這個。如果沒有值傳遞,然後插入'strtotime('+ 1 month')' –
您是否嘗試過使用'date_trunc('day',NOW()+ interval'1 month')'SQL函數。 –
沒有贊德我沒有 – Andrew