2012-03-30 68 views
-1

可能重複:
php/Mysql query with inserting date fails它不是在數據庫中插入一個日期

下面我有一個datepicker代碼:

  $(function() { 
     $("#datepicker").datepicker({minDate: 0, 
          dateFormat: "dd-mm-yy" 
}); 
}); 

正如你所看到的格式在datepicker文本框('dateChosen')中顯示的日期是'dd-mm-yy',就像這樣(20-05-2012)。

但是,當我試圖在「SESSIONDATE」字段中插入日期,而不是顯示在數據庫「2012-05-20」,它一直顯示「0000-00-00」。它爲什麼這樣做?

我想要的是文本框格式保持不變,但是當日期插入到SessionDate表中時,我希望它插入爲'2012-05-20'而不是'0000-00-00'。

下面是用於插入代碼($ _ POST [「dateChosen」]是POST方法哪些職位日期):

$sql="INSERT INTO Session (SessionDate) 
VALUES 
(' ". mysql_real_escape_string($_POST['dateChosen']) . "' 
)"; 

mysql_query($sql); 
+0

是什麼在'$ _ POST [ 'dateChosen']'? – Madbreaks 2012-03-30 22:29:35

+0

日期選擇器是同時dateChosen是其中的日期(20-05-2012' )被顯示 – user1394925 2012-03-30 22:31:52

+0

什麼是列SESSIONDATE的數據類型的文本框中出現的砑光機? – ajreal 2012-03-30 22:33:31

回答

2

您的日期格式爲dd-mm-yy,所以日期將是類型:31-03-12而不是31-03-2012。 MySQL在dateformat語法中無法接受該值。試試這個在插入查詢:

$sql = "INSERT INTO Session (SessionDate) VALUES(' " . 
     mysql_real_escape_string(date("Y-m-d", strtotime($_POST['dateChosen']))) . "')"; 
mysql_query($sql); 
+0

令人驚訝的DD-MM-YY實際顯示'20 -05-2012' ,而不是你說什麼笑,奇怪!我真正考驗你的答案,並儘快給您 – user1394925 2012-03-30 22:35:34

+0

@ user1298892無論哪種方式,MySQL的默認日期格式是'YYYY-MM-DD'。所以你的查詢肯定會失敗。 – hjpotter92 2012-03-30 22:39:04

+0

謝謝這一直運作良好:),我可以問你一個問題,如果我有時間相同的情況,然後做我只是做similay代碼你所提到的,但不是「YM-d」,將其更改爲「 HM-s'嗎? – user1394925 2012-03-30 22:41:37

0

另外,您可以使用MySQL的STR_TO_DATE() -

$date = mysql_real_escape_string($_POST['dateChosen']); 
$sql = "INSERT INTO Session (SessionDate) VALUES(STR_TO_DATE('$date', '%d-%m-%y'))"; 
mysql_query($sql);