如何让SQL查询返回带有算术结果的额外列?

d0m*_*n1c 0 mysql sql date

我目前的疑问是

$sql="SELECT * FROM events, times 
WHERE events.email = '$email' 
and 
events.type = times.type";
Run Code Online (Sandbox Code Playgroud)

events.date是形式为yyyy-mm-dd的sql中的日期

times.time是sql中相同形式的日期,但是0000-mm-dd.

我希望我的查询中有一个额外的列,其中包含一个事件的建议开始日期.

即.events.date - times.time

我可以让sql返回包含推荐开始日期的额外列吗?

还是我离开了标记?

任何想法都表示赞赏.

编辑:

这就是我现在拥有的:

SELECT *, date_diff(events.date, times.time) AS recommended FROM events, times WHERE events.email = '$email' and events.type = times.type ORDER by events.date
Run Code Online (Sandbox Code Playgroud)

从我可以告诉它不应该失败,但确实如此.它抱怨我的语法.

编辑:

它现在正在工作,谢谢

这就是我所拥有的

$sql="SELECT *, date_format(events.date - times.time, '%Y-%m-%d') as recommended 
FROM events, times 
WHERE events.email = '$email' 
and 
events.type = times.type ORDER by events.date";
Run Code Online (Sandbox Code Playgroud)

Ada*_*dam 5

你根本没有偏离标记.您可以创建一个额外的列,并通过计算并使用别名命名来为其命名.

SELECT *, TIMESTAMPDIFF(events.date,times.time) AS recommended_start_date
FROM events, times;
Run Code Online (Sandbox Code Playgroud)

我不确定TIMESTAMPDIFF功能是否是您正在寻找的功能.也许DATEDIFF()可能会更好.这部分 MySQL文档列出了您可以使用的所有与日期相关的函数.