我在MYSQL中只更新datetime字段类型中的date有一个问题。
我使用PHP从用户(dd/mm/yyyy)获取输入,并使用UPDATE mysql语句仅更改日期。但是日期时间字段只显示0000-00-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);
?>发布于 2012-12-05 18:30:19
尝试使用以下查询: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'");发布于 2012-12-05 18:40:13
尝尝这个
<?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);
?>发布于 2012-12-05 18:24:12
试试这个::
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'");https://stackoverflow.com/questions/13720920
复制相似问题