MySql 中计算列的条件值

发布于 2024-10-12 18:42:26 字数 245 浏览 0 评论 0原文

我正在尝试计算两个日期列之间的差异,其工作原理如下:

select (ship_date - due_date) AS DaysTaken;

基本上,我想确定订单是否按时发货,如果没有,则晚了多少天。正如预期的那样,这工作正常,但如果订单提前发货,我会得到一个负数。我想做的是评估结果,如果计算出负值,则返回 0。

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

I'm trying to calculate the difference between two date columns, which works just fine as:

select (ship_date - due_date) AS DaysTaken;

Basically, I want to determine if orders were shipped on time and, if not, how many days late. This works fine, as expected, except, if the order is shipped early, I get a negative number. What I'd like to do is to evaluate the results and return 0, if it calculates a negative value.

I don't know how to do this in a MySQL select statement. Can anyone help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

唐婉 2024-10-19 18:42:26

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

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

You can use the GREATEST() function to replace negative numbers with 0:

select GREATEST((ship_date - due_date),0) AS DaysTaken;
﹏半生如梦愿梦如真 2024-10-19 18:42:26
SELECT  GREATEST(ship_date - due_date, 0) AS DaysTaken
SELECT  GREATEST(ship_date - due_date, 0) AS DaysTaken
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文