2014-01-15 54 views
1

我試圖將一些數據插入到我的數據庫中。數據還包含一個日期和時間。所以我需要通過轉換成MySql DateTime格式來插入。我試過使用STR_TO_DATE,但它返回Date and Time Without AM OR PMPHP/MySql如何將dateTime從STRING轉換爲DATE

執行的代碼:

$sql = "INSERT into `projtemp` (`user_id`,`temp_name`,`processes`,`added`) VALUES('$uid','" . clean_data($tempName) . "','" . serialize($process) . "',STR_TO_DATE('$added', '%e/%c/%Y %r'))"; 
$result = $mysqli->query($sql) or die("Sql Error :" . $mysqli->error); 

查詢:

INSERT INTO `projtemp` (`user_id`,`temp_name`,`processes`,`added`) VALUES('0000000001','dsfwfwrfer','a:5:{i:0;s:11:"rgergergerg";i:1;s:29:"software requirement analysis";i:2;s:8:"regergre";i:3;s:16:"eqgerrrrrrrrrger";i:4;s:14:"ergergggggrreg";}',STR_TO_DATE('15/1/2014 11:34:21 AM', '%e/%c/%Y %r')) 

合力行:

enter image description here

我提到This Site,在他們說%r追加AM或者PMTime但它沒有爲我工作。任何人都可以請幫我解決這個問題。

+0

@ peterm請參閱問題中給出的查詢。 – james

回答

2

對於日期沒有AM/PM:

$datetime = date("Y-m-d H:i:s", strtotime($added)); 

隨着am/pm:

$datetime = date("Y-m-d H:i:s A", strtotime($added)); 

最後你的SQL stament將是:

$sql = "INSERT into `projtemp` (`user_id`,`temp_name`,`processes`,`added`) VALUES('$uid','" . clean_data($tempName) . "','" . serialize($process) . "','".$datetime."')"; 

有關日期函數的詳細信息請參閱:http://www.php.net/manual/en/function.date.php
*注:如果列是dataype datetime它不會插入AM/PM與日期。

+0

然後,如果我想插入'AM'或'PM' – james

+0

,那麼您必須將其更改爲'varchar'。 – user2936213

+0

當我運行時,您的語句會返回'0000-00-00 00:00:00'。 – james

1

試試這個代碼:

$timestamp = strtotime($added); 

然後使用日期()將其轉換爲時間戳/日期格式,

date("Y-m-d H:i:s A", $timestamp);