2013-10-16 42 views
1

我想設置dealend爲昨天而不是現在。有沒有辦法在這個命令行中做到這一點?我現在怎麼做()是昨天

$query = mysqli_query($myConnection, "UPDATE bookdeals SET dealend='now()' WHERE id='$pid'") or die (mysqli_error($myConnection)); 

回答

5
... SET dealend = now() - INTERVAL 1 DAY 

注意與'now()'你使用,你不使用所謂的「現在」的功能。你試圖設置你的表字段是一個字符串,其內容是字母n,o,w等....行情變成了字符串,這些東西失去了他們的專業,一旦他們被串起來。

+0

它不應該是'DATE_SUB'? – Petah

+0

不。您可以直接使用日期數學中的間隔。 –

+0

其實CURDATE()適用於我的情況,但這是我提出的問題的正確答案。謝謝。 – user2816376

0

now()是一個SQL函數,它由事務的開始時間決定。你可以通過調用

SET TIMESTAMP = ... 

然而,對於這個工作,它需要在相同的事務中的UPDATE查詢更改了它的價值。我會建議,而不是在做這樣的事情:

UPDATE bookdeals SET dealend=DATE_SUB(NOW(), INTERVAL 1 DAYS) WHERE id='$pid' 

此使用MySQL SUB_DATE()函數,它將減去一天內,從當前的時間。

0

你可以使用MySQL DATE_SUB功能

... dealend=DATE_SUB(now(),INTERVAL 1 DAY) ... 

Read here更多信息,關於MySQL日期函數