Mysql 按时间和日期分组
我不想在这里问一个问题,因为我知道它已经完成了(稍微),但是由于字段格式的不同,我的问题略有不同。我在加入、小时选择和其他方面做了很多尝试,但我被卡住了。我想要一个快速的手 我有一个MySQL表,如下所示:Mysql 按时间和日期分组,mysql,date,time,group-by,Mysql,Date,Time,Group By,我不想在这里问一个问题,因为我知道它已经完成了(稍微),但是由于字段格式的不同,我的问题略有不同。我在加入、小时选择和其他方面做了很多尝试,但我被卡住了。我想要一个快速的手 我有一个MySQL表,如下所示: CREATE TABLE `VAT` ( `VATid` int(11) NOT NULL AUTO_INCREMENT, `VATDate` date DEFAULT NULL, `VATTime` varchar(10) DEFAULT NULL, `VATPledgeA
CREATE TABLE `VAT` (
`VATid` int(11) NOT NULL AUTO_INCREMENT,
`VATDate` date DEFAULT NULL,
`VATTime` varchar(10) DEFAULT NULL,
`VATPledgeAmount` float DEFAULT NULL,
PRIMARY KEY (`VATid`),
UNIQUE KEY `VATid_UNIQUE` (`VATid`)
) ENGINE=MyISAM AUTO_INCREMENT=6531 DEFAULT CHARSET=latin1;
问题在于,VATDate字段的日期格式为YYYY-MM-DD,而VATTime字段的日期格式为带前导零的HHMM,如下表中的一些示例数据所示
样本表数据:
VATid | VATDate | VATTime | VATPledgeAmount |
--------------------------------------------------
1 | 2016-06-30 | 0730 | 100 |
2 | 2016-06-30 | 0733 | 20 |
3 | 2016-06-30 | 0840 | 70 |
4 | 2016-06-30 | 0943 | 100 |
5 | 2016-06-30 | 0730 | 50 |
6 | 2016-07-01 | 2113 | 50 |
7 | 2016-07-01 | 2302 | 300 |
8 | 2016-07-02 | 0416 | 10 |
9 | 2016-07-02 | 0417 | 10 |
10 | 2016-07-02 | 0418 | 10 |
我想做的是让MySQL服务器为我做计算,这样当数据出来时,日期仍然会显示出来,但是每小时的总值会被汇总和分组
Counts | g_VATDate | g_VATTime | Total_VATPledgeAmount |
--------------------------------------------------
2 | 2016-06-30 | 0700 | 120 |
1 | 2016-06-30 | 0800 | 70 |
1 | 2016-06-30 | 0900 | 100 |
1 | 2016-07-01 | 2100 | 50 |
1 | 2016-07-01 | 2300 | 300 |
3 | 2016-07-02 | 0400 | 30 |
我希望这是有道理的。我计划将其用于JS图,但由于我不需要或不想要单独的认捐及其金额值,我只想要每小时的金额和总数。您可以使用concat(左(VATTime,2),'00')
获取小时:
select count(VATid) counts, VATDate g_VATDate,
concat(left(VATTime, 2), '00') g_VATTime,
sum(VATPledgeAmount) Total_VATPledgeAmount
from VAT
group by g_VATDate, g_VATTime;
如何计算
VATSwareAmount
?它实际上是一个美元值,因此在我的最后一个等式中,我希望得到它们所属小时的值的总和。下次,记住将日期和时间存储为单个实体。并将钱存储为十进制!谢谢你的提示!:)