MySql中计算列的条件值

时间:2011-01-18 17:34:33

标签: mysql select

我正在尝试计算两个日期列之间的差异,它可以正常工作:

select (ship_date - due_date) AS DaysTaken;

基本上,我想确定订单是否按时发货,如果没有,则延迟多少天。这是正常的,正如预期的那样,除非如果订单提前发货,我得到一个负数。我想做的是评估结果并返回0,如果它计算负值。

我不知道如何在MySQL select语句中执行此操作。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

您可以使用GREATEST()功能将负数替换为0:

select GREATEST((ship_date - due_date),0) AS DaysTaken;

答案 1 :(得分:1)

SELECT  GREATEST(ship_date - due_date, 0) AS DaysTaken