2012-12-21 54 views
1

我插入這個DateTime數據'12/21/2012 1:13:58 PM'到我的MySQL數據庫使用該SQL字符串:什麼是MySQL數據庫正確的DateTime格式?

String Query = "INSERT INTO `restaurantdb`.`stocksdb` 
        (`stock_ID`,`stock_dateUpdated`) 
        VALUES ('@stockID' '@dateUpdated'); 

,我收到此錯誤信息:

Incorrect datetime value: '12/21/2012 1:13:58 PM' for column 'stock_dateUpdated' at row 1 

那麼,什麼是dateTime以正確的格式/值輸入到MySQL數據庫?

+2

變化VALUES('@ stockID''@dateUpdated'); VALUES('@stockID','@dateUpdated');它應該工作 – Satya

+0

可以爲「stock_dateUpdated」列提供表結構或數據類型 –

+2

逗號在'VALUES'中缺少逗號.. –

回答

6

問:什麼是MySQL的語句中DATETIME文字正確的格式/值?

答:在MySQL,對於DATETIME字面的標準格式是:

'YYYY-MM-DD HH:MI:SS' 

與時間分量作爲一個24小時時鐘(即,如00和23之間的值設置在小時數字)。

MySQL提供了一個內置函數STR_TO_DATE,它可以將各種格式的字符串轉換爲DATEDATETIME數據類型。

所以,作爲替代方案,你也可以用該函數的調用指定DATETIME的價值,就像這樣:

STR_TO_DATE('12/21/2012 1:13:58 PM','%m/%d/%Y %h:%i:%s %p') 

所以,你可以有MySQL的執行轉換爲您在INSERT語句中,如果您的VALUES清單是這樣的:(我注意到你有必要的逗號在VALUES列表中兩個文字之間的丟失)

... VALUES ('@stockID', STR_TO_DATE('@dateUpdated','%m/%d/%Y %h:%i:%s %p'); 


MySQL確實允許在DATETIME文字的各個部分之間的分隔符中有一定的寬度,所以它們不是嚴格要求的。

MySQL 5.5 Reference Manual.

2

我用過的作品是年月日,有24小時的時間。在PHP中,它的編號爲date('Y-m-d H:i:s'),我相信它將對應於C#/ .NET中的yyyy-MM-dd HH:mm:ss。 (該時間部分是可選的,因此是破折號。)

證實了在文檔,Date and Time Literals

的日期和時間值可以採用多種格式來表示,如引用的字符串或數字,取決於價值的確切類型和其他因素。例如,在MySQL預期日期的上下文中,它將'2015-07-21','20150721'和20150721中的任何一個解釋爲日期。

1

正如在評論中提到,你缺少的值的分隔符,。另外最好使用STR_TO_DATE首先將像以前一樣字符串轉換成日期對象轉換:

String Query = "INSERT INTO `restaurantdb`.`stocksdb` "+ 
       " (`stock_ID`,`stock_dateUpdated`) VALUES "+ 
       "('@stockID', STR_TO_DATE(@dateUpdated, '%m/%d/%Y %h:%i:%s %p'))"; 
0

MySQL的DATETIME格式爲YYYY-MM-DD HH:MM:SS - 看到這個page

相關問題