2010-05-15 61 views
0

是否可以使用這樣的date_sub?dateub question

$dt = date("Y-m-d h:i:s"); 

$query = "INSERT INTO `table` (`date`) VALUES ('DATE_SUB('$dt', INTERVAL 15 DAY)')"; 

$result = MYSQL_QUERY($query); 

感謝

+0

只是運行這個,看看會發生什麼。 – 2010-05-15 23:38:53

回答

0

您可以通過刪除DATE_SUB(...)左右的引號來在數據庫上使用它。 但你應該考慮使用隨時間的UNIX時間戳(),並使用日期()函數,它重新轉換爲日期格式,例如:

$dt = date("Y-m-d h:i:s", time() - 15*24*3600); //today - 15 days 

與PHP 4和PHP 5,作品

1

我勸你不要把日曆計算到數據庫。改爲使用DateTime class,並更新timezonedb擴展名。這實際上是PHP正確的事情之一。

另請參見Derick博客上的this post

+0

doesnt datetime需要php 3.0嗎? – 2010-05-15 23:36:49

+0

你可能會5.3 - 答案:不,所有必要的功能是在5.2 – 2010-05-15 23:38:25

+0

哦對不起,我的意思是5.3好,你可以顯示一個示例代碼?以及如果我必須在數據庫上這樣做呢?謝謝 – 2010-05-15 23:42:26

1

這是錯誤的'DATE_SUB('$dt', INTERVAL 15 DAY)',這是一個字符串。

現在,您的日期格式與MySQL的NOW()函數使用的格式相同。

SELECT NOW(); 
--------------------- 
|now()    | 
--------------------- 
|2010-05-15 20:42:35| 
--------------------- 

而且,由於在最近的一個項目一直在使用我沒有任何問題DATE_SUB(NOW(), INTERVAL 6 MONTH);,我看不出有任何理由,你爲什麼不能使用它。

SELECT DATE_SUB(NOW() , INTERVAL 6 MONTH); 
----------------------------------- 
|DATE_SUB(NOW(), INTERVAL 6 MONTH)| 
----------------------------------- 
|2009-11-15 20:49:28    | 
----------------------------------- 
+0

是的你說得對,謝謝你的信息 – 2010-05-16 00:11:48