【发布时间】:2013-07-12 11:17:55
【问题描述】:
我有一个名为user_transaction 的数据库表,其结构如下:
transaction_id mediumint(6) UNSIGNED (PK)
transaction_no varchar(55)
transaction_cc_avenue_no varchar(55)
transaction_card_category varchar(100)
transaction_user_id varchar(32)
transaction_user_name varchar(255)
transaction_user_email_id varchar(255)
transaction_deal_code varchar(10)
transaction_dc_id smallint(4)
transaction_amount float(10,2)
transaction_discount float(10,2)
transaction_total_amount float(10,2)
transaction_data_assign enum('0', '1')
transaction_status enum('success', 'inprocess', 'fail', 'cancelled')
transaction_date bigint(12)
transaction_update_date bigint(12)
transaction_update_user_id varchar(32)
我正在使用 UNIX 时间戳值将日期存储在 transaction_date 列中。现在我从'dd/mm/yyyy'格式的表单中获取两个日期,将其转换为 UNIX Timestamp 并在以下查询中使用它。现在我想显示日期编号。在我给定的范围内的所有日期中,不同交易状态的交易(即每个日期发生的交易总数,状态为“成功”、“处理中”、“失败”和“已取消”的交易总数)。这些记录应按交易日期分组。我尝试了很多来获得这个结果,但没有取得任何成功。供您参考,我在查询下方给出:
SELECT COUNT(*) `total count`, SUM(transaction_status = 'success') `success`, SUM(transaction_status = 'inprocess') `inprocess`, SUM(transaction_status = 'fail') `fail`, SUM(transaction_status = 'cancelled') `cancelled` FROM user_transaction WHERE transaction_date >= '1325376000' AND transaction_date <= '1338422400' GROUP BY FROM_UNIXTIME(transaction_date)
有人可以在这方面帮助我吗?提前致谢。
【问题讨论】:
标签: php mysql sql unix-timestamp