尝试根据mySQL中SELECT语句的结果更改表

问题描述 投票:0回答:2

当我使用以下选择语句时,我可以返回date_due和date_returned之间的日期差。

select Date_Due,Date_Returned,
datediff(Date_Due,Date_Returned) as Day_Diff 
From tp_rental

但是我无法获得这些值来替换tp_rental表中的当前空值。我尝试了以下语句,也认为它将创建一个新列。

alter table tp_rental
ADD DayDiff as DATEDIFF (Date_Due,Date_Returned);

我的错误说语法接近DATEDIFF时有问题

任何想法?在此先感谢

mysql select datediff alter
2个回答
0
投票

您可以使用coalesce功能:

datediff(
          coalesce(Date_Due,Date_returned),
          coalesce(Date_Returned,Date_Due)) as Day_Diff

0
投票

生成的列表达式需要包含在()中(请参见manual)。试试这个:

alter table tp_rental
ADD DayDiff as (DATEDIFF(Date_Due,Date_Returned));
© www.soinside.com 2019 - 2024. All rights reserved.