爲了簡單起見,我有一個表中的兩個字段:用另一個字段中的單個INT更新MySQL日期字段?
- 日期1(YYYY-MM-DD格式)
- 日(單或兩位數字的天格式,1-31)
我希望能夠使用Day內的值更新Date 1,但我不想多次調用(首先選擇,讀取結果,然後使用同一個表的結果更新)。
最終在我的呼叫的 '設計'(其不工作)將是:
UPDATE SET表日期1 = DATE(Y-(M + 1) - 天的(值) );
或在PHP中:
date("Y-m-d", mktime(0,0,0,date('m')+1, VALUE(Day), date('Y')));
這可能嗎?
UPDATE
==
雖然我已經能夠利用一些下面的代碼,我不知道MySQL是「聰明」,足以運行計算,因爲我有它。我的新代碼是:
UPDATE表設置日期1 = CONCAT(YEAR(CURDATE()), ' - ',MONTH(ADDDATE(CURDATE(), 間隔1個月)), ' - ', Day1)
雖然這會返回正確的「新月」和「新的一天」,但噹噹月是十二月時,年份將錯誤。
例如:如果當前日期是2010-12-02。 Day字段中的首選數據爲12.處理完腳本後,Date 1字段應更新爲2011-01-12,但在上面的代碼中,它只會輸出到2010-01-12。
我不明白你在做什麼。 「日」是否存儲實際的日期日期編號,或者是否將其遞增?我認爲擺脫你的Day字段和使用日期操作函數會讓你更容易。通過使用兩列來存儲您可以從其中獲得的相同數據,會產生很大的風險。 – Cfreak 2010-11-17 15:47:20
@Cfreak - 它不是相同的數據。日期1字段可以隨時更新,但是當某些操作發生時,該字段的DAY部分將更新爲存儲在日期字段中的值。至於你的最後一點,有兩個「類似」數據的字段,其中一個是tinyint並不是「很大的風險」 – JM4 2010-11-17 15:49:25