You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询获取订单指定状态对应的关键时间节点?

SQL查询获取订单关键时间信息

假设你的订单状态变更日志表名为order_status_logs,包含order_id(订单ID)、status(状态值)、change_time(状态变更时间)这几个核心字段,以下SQL可以实现需求:

SELECT
    order_id,
    MIN(CASE WHEN status = 0 THEN change_time END) AS create_date,
    MIN(CASE WHEN status = 1 THEN change_time END) AS modified_date,
    MAX(CASE WHEN status = 3 THEN change_time END) AS end_date
FROM order_status_logs
GROUP BY order_id;

语句说明:

  • MIN(CASE WHEN status = 0 THEN change_time END):筛选出状态为0(订单创建状态)的所有记录,取最早的时间作为订单首次创建时间create_date
  • MIN(CASE WHEN status = 1 THEN change_time END):筛选出状态为1的所有记录,取最早的时间作为状态首次变为1的modified_date
  • MAX(CASE WHEN status = 3 THEN change_time END):筛选出状态为3的所有记录,取最晚的时间作为状态最后变为3的end_date
  • GROUP BY order_id:按订单ID分组,确保每个订单只返回一条包含三个时间的结果

如果你的表结构(比如字段名、表名)和假设不同,只需要替换对应的表名、字段名和状态值即可。

内容的提问来源于stack exchange,提问作者ashok_poonia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 22:02:37