【问题标题】:Sort sql results by Month with unix使用 unix 按月份对 sql 结果进行排序
【发布时间】:2014-02-22 09:47:32
【问题描述】:

这就是我想要达到的目标:

我有 2 个 sql 表: 交易和支付计划 下面是2个表的结构:

交易

uid | plan | date       | payid | status
------------------------------------
12  | 3    | 1388534400 | 334 | 1
699 | 4    | 1388214400 | 335 | 1

支付计划:

plan | plan_price
-------------------
3    | 9.99
4    | 19.99

使用此查询:

SELECT SUM(plan_price) 
  FROM transations AS t
       INNER JOIN payplans AS p
                  ON t.plan = p.plan
 WHERE t.status = '1'

我能够计算所有“plan_price”行的总和, 但我想知道从 2013 年 1 月开始的每个月的价格总和 例如:

1 月 13 日 | 9.99

2 月 13 日 | 29.99 等等

【问题讨论】:

  • 您使用的是哪个 rdbms?另外,请提供SHOW CREATE TABLE transactions;SHOW CREATE TABLE payplans;DESC transactions;DESC payplans;

标签: mysql sql unix-timestamp


【解决方案1】:

对于 MySQL

SELECT date_format(FROM_UNIXTIME(t.date), '%b-%y') as mnth, 总和(plan_price) FROM 交易作为 t INNER JOIN 支付计划 AS p ON t.plan = p.plan WHERE t.status = '1' 分组第 mn;

SQLFiddle

  1. 您使用 FROM_UNIXTIME 将 unix_timestamp 转换为日期
  2. 使用DATE_FORMAT将其格式化为“MON-YY”格式
  3. 然后按月分组。

【讨论】:

  • 谢谢,但我正在使用 mysql
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
  • 2020-10-06
  • 2011-09-28
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 1970-01-01
相关资源
最近更新 更多