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

Mysql Datetime字段,仅使用php更新日期,php,mysql,datetime,Php,Mysql,Datetime,我在MYSQL中只更新datetime字段类型中的date有一个问题 我使用PHP从用户(dd/mm/yyyy)获取输入,并使用updatemysql语句仅更改日期。但datetime字段仅显示0000-00-00:00:00 下面的代码只是php文件,它在从php获取输入后更新表,该输入使用XMLHttprequest传递值 请参见下面的代码: <?php include 'accesscontrol.php'; ?> <?php $q4=$_GET["q4"]; $use

我在MYSQL中只更新datetime字段类型中的date有一个问题

我使用PHP从用户(dd/mm/yyyy)获取输入,并使用updatemysql语句仅更改日期。但datetime字段仅显示0000-00-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);
?>

试试这个:

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'");

尝试此查询:
updateinvhdr\u编辑集Invdate='“$new.”00:00:00',其中usr='$user'”;

如果您需要时间追加,请使用以下命令

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

<?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);
?>


我想从变量中获取日期值,在您的响应中,该值缺失,请选中此项,它在字段(datetime)中给出空值如果我错了,请更正,您需要使用数据为日期的变量更新列?您不希望使用当前时间更新列?是的,您只需要更新日期并保留datetime字段中已存在的时间。请将日期存储到变量中,并在查询之前尝试打印该变量执行,然后通过查看格式,我将更新我的查询在您的响应中您给出的时间为00:00:00,在这种情况下,它将更新00而不是保留现有时间。Pl Check即使这不起作用,它也会在字段中存储该值1970-01-01 05:30:00。我想因为我的$q4值将采用2012年5月4日的格式。mysql只允许您在datetime字段中以Y-m-d H:i:s格式插入。如果您在上面看到我的php代码,那么我正在格式化日期,然后以Y-m-d格式存储它