1

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

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

下面的代码只是从使用 XMLHttprequest 传递值的 php 获取输入后更新表的 php 文件。

请在下面查看我的代码:

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

3 回答 3

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);
?>
于 2012-12-05T10:40:13.260 回答
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'");
于 2012-12-05T10:30:18.753 回答
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'");
于 2012-12-05T10:24:12.480 回答