2011-07-07 162 views
4

我試圖找出如何手動更新MYSQL日期和時間字段(而不是今天的日期!),即設置日期字段到一定的日期值和時間字段以正確的SQL所需的字段格式正確地轉換爲特定的時間字段。PHP MYSQL更新數據庫日期和時間字段中手動

我使用的是UPDATE查詢不插入爲我的行爲是更新用戶領域

做了一些研究,並提出了沿(顯然這個例子不會工作線的東西,但沒有人知道如何格式化?此查詢

UPDATE mytblname SET date='DATE: Manual Date', '2011-06-14'', time='TIME: Manual Time', '12:10:00' WHERE email='somevalue' 

如果我只是輸入值正常SQL方式,給人0000-00-00日期和00:00:00的時間 - 即

SET date='2011-06-14',time='12:33:35' 

感謝您的任何建議,真的很感激它!

回答

8
UPDATE mytblname SET `date`="2011-06-14", `time`="12:10:00" WHERE email="somevalue"; 

這應該很好。確保你有相應的反引號datetime

+0

沒有直接做這樣造成的問題 – daza166

+0

@ daza166,什麼問題?它確實有效,相信我。如果它不適合你,那麼機會就是你的WHERE條件不符合你想要的。例如,您是否檢查過該電子郵件字段的區分大小寫? – Brad

+2

我發現問題,這種方式做的工作,我把時間放入日期字段和日期到時間字段哈哈愚蠢的錯誤。謝謝 – daza166

1

請參閱MySQL Documentation on DATE, TIME and DATETIME formats。你可以看到,有多種可能的值可以分配給這些類型的字段。

所以這應該工作:

UPDATE `mytblname` SET `date`=NOW(), `time`=NOW() WHERE `email`='somevalue'; 

或任何特定的日期一樣,(該字符串將被自動轉換爲DATE,TIME或DATETIME格式):

UPDATE `mytblname` 
SET 
`date`='1987-01-02 11:22:33', 
`time`='1987-01-02 11:22:33' 
WHERE `email`='somevalue'; 

您也可以將它是這樣的,這更清楚:

UPDATE `mytblname` 
SET 
`date`='1987-01-02', 
`time`='11:22:33' 
WHERE `email`='somevalue'; 

唯一的問題是,哪條路徑w生病你選擇:)

+0

事情是我不想設置日期和時間今天我想把它設置爲除了今天之外的手動日期? – daza166

+0

@ daza166:更新它,所以它更清晰:) – Tadeck

+0

@ saza166也許你有日期時間字段,這就是爲什麼它的某些部分是零的原因是什麼? – Tadeck