如何更新 MSSQL 上为空的日期值?



我正在创建一个提取用户信息的表单,如果需要,用户可以更新他们的信息。 在表单上有两个日期字段,第二个字段是可选的。 因此,当用户单击"更新"并且第二个日期字段为空时,在 MSSQL 数据库中,它会将date_two字段更新为"01/01/1970"。 我正在使用带有MSSQL的PHP,因此在代码中我有:

if(isset($_POST['update']) {
$date_two = $_POST['date_two'];
if($date_two == "")
$date_two == NULL;
else
$date_two = date("Y-m-d", strtotime($date_two) );
UPDATE table SET date_two = CAST('$date_two' as DATE2);
}

结果条目为 01/01/1970,而不是 NULL。

您应该检查输入的日期值是否为空字符串(''(并管理null,因为如果您的var的值不是空的(也是一个空字符串( 更新将生成日期值

UPDATE table SET date_two = (case when  '$date_two' = '' then NULL 
else  CAST('$date_two' as DATE2)
end);

无论如何,你不应该在你的SQL命令中使用PHP var,你在Rusk进行SQL注入..拿一个你数据库驱动程序Fior准备的命令和绑定参数..

最新更新