SQL:按比某物大多少排序?
我这里有两个 datetime
字段:actual_delivery
和 scheduled_delivery
我想要执行的 ORDER BY 是多少 actual_delivery
code> 大于 scheduled_delivery
。
我在本地使用 MySQL,在生产中使用 PostgreSQL,因此它需要同时适用于两者。
I have two datetime
fields here: actual_delivery
and scheduled_delivery
What I want to do an ORDER BY on is how much great actual_delivery
is than scheduled_delivery
.
I'm using MySQL locally and PostgreSQL in production, so it needs to work for both.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我在 SQL Server 中执行此操作,我会计算 DATEDIFF(actual_delivery, Scheduled_deliver) AS [DeliveryDifference],然后按该计算列进行排序。
快速搜索表明 MySql 中有一个
datediff
函数,但 PostgreSQL 中的语法可能略有不同,因此您可能必须在那里创建自己的函数。If I were doing it in SQL Server I'd calculate
DATEDIFF(actual_delivery, scheduled_deliver) AS [DeliveryDifference]
then order by that computed column.A quick search indicates there's a
datediff
function in MySql but the syntax may be slightly different in PostgreSQL so you may have to create your own function there.试试这个:
SELECTactual_delivery、scheduled_delivery、actual_delivery-scheduled_delivery作为差异FROM表名ORDER BY差异
Try this:
SELECT actual_delivery, scheduled_delivery, actual_delivery - scheduled_delivery as difference FROM tablename ORDER BY difference