更新日期时间最后8个字符(....- ..- .. hh:mm:ss)

Bra*_*ano 1 php mysql sql datetime

我有datetime列,格式为YYYY-MM-DD HH:mm:ss.

但是在我用于更新此数据的php表单中,我创建了2个单独的字段,一个用于DATEpart,另一个用于TIMEpart.

使用以下方法从表中接收/加载这些值到我的php表单是没有问题的:

RIGHT(datetime,8) for TIMEpart or for DATEpart LEFT(datetime,10)
Run Code Online (Sandbox Code Playgroud)

问题是我也无法仅更新那部分数据.如果我尝试使用TIMEpart进行更新,它将尝试更新datetime的前8个字符,而不是尝试更新最后8个字符.问题是我不知道如何告诉程序这样做,我知道它需要被定义到我的sql查询中.

$query3=mysqli_query($db,"update LISTS set datetime=LEFT(datetime,10), 
datetime=RIGHT(datetime,8) where id='$id'");
Run Code Online (Sandbox Code Playgroud)

我是SQL和PHP的新手.我已经通过2个单独的列工作了,但我想尽可能简化sql表.

提前致谢.

Gor*_*off 5

我想你想用addtime():

update lists
    set datetime = addtime(@date, @time)
    where id = @id;
Run Code Online (Sandbox Code Playgroud)

学习使用正确的参数化查询,而不是使用用户输入值来修改查询字符串.您的方法可能会导致无法解释的语法错误,并使代码容易受到SQL注入攻击.