当我使用以下选择语句时,我可以返回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时有问题
任何想法?在此先感谢
您可以使用coalesce
功能:
datediff(
coalesce(Date_Due,Date_returned),
coalesce(Date_Returned,Date_Due)) as Day_Diff
生成的列表达式需要包含在()
中(请参见manual)。试试这个:
alter table tp_rental
ADD DayDiff as (DATEDIFF(Date_Due,Date_Returned));