Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按unix时间戳字段的月份分组_Mysql_Select_Count_Unix Timestamp - Fatal编程技术网

Mysql 按unix时间戳字段的月份分组

Mysql 按unix时间戳字段的月份分组,mysql,select,count,unix-timestamp,Mysql,Select,Count,Unix Timestamp,我正在尝试以以下格式输出代码: january 2012 - 34 february 2012 - 23 其中34和23是该月内id为7的总行数。我需要这个来输出每个月的所有数据,每个月都有一个任务 assignments表格结构如下: id_dealer (int) date_assigned (int) 我尝试过这个,但根本不起作用: SELECT MONTH(date_assigned), YEAR(date_assigned), COUNT(*) FROM assignments G

我正在尝试以以下格式输出代码:

january 2012 - 34
february 2012 - 23
其中34和23是该月内id为7的总行数。我需要这个来输出每个月的所有数据,每个月都有一个任务

assignments
表格结构如下:

id_dealer (int)
date_assigned (int)
我尝试过这个,但根本不起作用:

SELECT MONTH(date_assigned), YEAR(date_assigned), COUNT(*)
FROM assignments
GROUP BY MONTH(date_assigned), YEAR(date_assigned)

指定的日期列应为日期类型。AFAIK MONTH在日期列上工作 如果您想从日期列中获取月份名称,请使用:
MONTHNAME(DATE\u assigned)
尝试此查询

SELECT 
  MONTH(FROM_UNIXTIME(date_assigned)), 
  YEAR(FROM_UNIXTIME(date_assigned)), 
  COUNT(*)
FROM assignments
GROUP BY 1,2

对于希望输出日期时间而不是月/年组合的人,这里有另一种解决问题的方法。使用
DATETIME
的好处是它可以很容易地插入到数据可视化库和工具中

SELECT 
    LAST_DAY(FROM_UNIXTIME(date_assigned)), 
    COUNT(*)
FROM assignments
GROUP BY 1
ORDER BY 1 DESC
LAST_DAY()
函数返回给定的
DATE
DATETIME
值的当月最后一天。如果您想抓住第一天,可以选择以下选项:
ADDDATE(最后一天(子日期(从UNIXTIME(日期分配),间隔1个月)),1)
。它将最后一个日期加上一天,然后减去一个月

1
值是列位置整数——简写,这样我们就不必键入
LAST\u DAY(从UNIXTIME(date\u assigned))
任何超出我们需要的值(它们从1开始,而不是从0开始)

示例输出:

|-------------------------------------------|------------------|
| LAST_DAY(FROM_UNIXTIME(date_assigned))    | COUNT(*)         |
|-------------------------------------------|------------------|
| September 30, 2020, 12:00 AM              | 34               |
|-------------------------------------------|------------------|
| August 31, 2020, 12:00 AM                 | 23               |
|-------------------------------------------|------------------|

你能看看这个吗-哇,我不认为这是可能的。荣誉如何使用月份名称获取输出,例如month=JAN&sales=20这不是问题的完美解决方案,但很有用。您能否解释一下此查询的工作原理
|-------------------------------------------|------------------|
| LAST_DAY(FROM_UNIXTIME(date_assigned))    | COUNT(*)         |
|-------------------------------------------|------------------|
| September 30, 2020, 12:00 AM              | 34               |
|-------------------------------------------|------------------|
| August 31, 2020, 12:00 AM                 | 23               |
|-------------------------------------------|------------------|