mysql - 使用 Unix TimeStamp 格式的数据计算每月行数的 SQL 查询

标签 mysql sql datetime unix-timestamp

在我的Mysql数据库中我有一个列存储了Unix TimeStamp(类型/BigInt,毫秒)的日期值。我需要编写一个查询来计算每个月(无论年份)的行数。

表:

    +-------+----------------+
    |   id  |    Startdata   |
    +-------+----------------+
    |     1 |  1580841222491 |  
    |     2 |  1580841235885 |  
    |     3 |  1580841235872 |  
    |     4 |  1580843242865 |  
    |     5 |  1580841134857 | 
    |     6 |  1580841334855 | 
    |     7 |  1580842252695 | 
    |     8 |  1580844236845 | 
       ...         ... 
    +-------+----------------+

期望返回:

+-------+-------+
| count | month |
+-------+-------+
|     4 |     1 |  
|     1 |     2 |  
|     6 |     3 |  
|    51 |     4 |  
|    21 |     5 | 
|    29 |     6 | 
|    41 |     7 | 
|    18 |     8 | 
|    21 |     9 | 
|    11 |    10 | 
|    38 |    11 |
|    23 |    12 |
+-------+-------+

函数 UNIX_TIMESTAMP 不起作用

最佳答案

from_unixtime 还允许您指定输出格式。在您的情况下,%m 就是您所需要的。

select from_unixtime(Startdata/1000,"%m"), count(*)
from t
group by from_unixtime(Startdata/1000,"%m")

关于mysql - 使用 Unix TimeStamp 格式的数据计算每月行数的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63908322/

相关文章:

MYSQL:从两个 SELECT 左连接到日期中的 "fill gaps"

java - 是否有任何验证 SQL 语法的 Java 库?

sql - 从文件读取并使用 sqlplus 在 1 行上保存到文件

mysql - 无法弄清楚如何完成sql语句

java - 如果月份是 3 个字母的字符串,如何计算 2 个日期之间的年数

mysql - 选择与总和不同

mysql - MySQL 中何时使用单引号、双引号和反引号

java - 将输入字符串日期时间从不同时区转换为 UTC

mysql - 将当前计数值与上周计数值进行比较

javascript date.utc问题