Mysql Datetime字段,使用php更新日期

时间:2012-12-05 10:20:16

标签: php mysql datetime

我在MYSQL中仅更新日期时间字段类型的日期时遇到问题。

我正在使用PHP从用户(dd / mm / yyyy)获取输入,并使用UPDATE mysql语句仅更改日期。但是datetime字段只显示00:00:00。

下面的代码只是php文件,它在从php传入值后使用XMLHttprequest传递值来更新表。

请参阅下面的代码:

<?php include 'accesscontrol.php'; ?>
<?php
$q4=$_GET["q4"];

$user = $_SESSION['user'];

$date_array = explode( "/", $q4 );
$new = sprintf( '%4d-%02d-%02d', $date_array[2], $date_array[1], $date_array[0] );


$con = mysql_connect("localhost","tst","tst!@#");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("test", $con);

mysql_query("UPDATE INVHDR_edit SET Invdate= concat ('$new', time(Invdate)) WHERE usr='$user'");


if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }

mysql_close($con);
?>

3 个答案:

答案 0 :(得分:2)

试试这个

<?php include 'accesscontrol.php'; 
$q4 = $_GET["q4"];
$user = $_SESSION['user'];
$dateSql = date("Y-m-d H:i:s",strtotime($q4));
$con = mysql_connect("localhost","tst","tst!@#");
if (!$con){
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
mysql_query("UPDATE INVHDR_edit SET Invdate= '$dateSql' WHERE usr='$user'");
if (!mysql_query($sql,$con)){
  die('Error: ' . mysql_error());
}
mysql_close($con);
?>

答案 1 :(得分:1)

尝试使用此查询:UPDATE INVHDR_edit SET Invdate='".$new." 00:00:00' WHERE usr='$user'");

如果您需要时间来追加使用以下内容。

$new = $new.date(" H:i:s");
mysql_query("UPDATE INVHDR_edit SET Invdate='$new' WHERE usr='$user'");

答案 2 :(得分:0)

试试这个::

UPDATE INVHDR_edit SET Invdate= STR_TO_DATE(Invdate, '%d-%b-%y') WHERE usr='$user'");

如果使用变量:

UPDATE INVHDR_edit SET Invdate= STR_TO_DATE(@var1, '%d-%b-%y') WHERE usr='$user'");