将31/07/2010转换为日期格式,如2014-07-31

时间:2014-07-31 08:20:31

标签: mysql sql date date-format

是否有可以转换日期的函数,如:

2014年7月31日至2014-07-31的格式日期

我想这样做是因为在我的SQL查询中,当我将日期格式化为“/”时,它不理解te格式:/

我收到此消息:Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '30/07/2014' for column 'date_recu' at row 1' in C:\wamp\www\ajouter_lot2.php on line 76

在我的sql表中,日期的类型是在datetime。

查询

$bdd->query('insert into LOT (id_lot,num_ref,date_recu,qty,remarque1,remarque2)
                    VALUES 
                    (NULL, "'.$Num_Ref.'","'.$Date_Recu.'",\''.$Qty.'\',"'.$Rem1_Lot.'","'.$Rem2_Lot.'")');

$ Date_Recu =“31/07/2014”

使用strtotime()

的解决方案
$Date_Recu = strtotime($Date_Recu);               /* shows 31/07/2014 */
$Date_Recu =  date('Y-m-d', $Date_Recu);
echo 'Date Recu : '.$Date_Recu;                   /* shows 2014-07-31 */

2 个答案:

答案 0 :(得分:1)

您可以尝试: -

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d')

结果为2014-07-31.

答案 1 :(得分:1)

您需要将日期转换为MySQL可以理解的格式。

$Date_Recu = date_create_from_format('d/m/Y', $Date_Recu)->format('Y-m-d');

您不应在d / m / Y格式的日期上使用strtotime,因为它无法知道格式是否实际为d / m / Y或m / d / Y.使用类似date_create_from_format的函数,您也可以在其中指定格式。