首页 > 解决方案 > sql中有没有办法从数据中获取月份名称

问题描述

我正在选择一个数据范围,该范围适用于我的代码并返回预期数据。问题是当我添加代码以按月检索时,我得到空值。

https://www.sqltutorial.org/sql-date-functions/extract-month-from-date-sql/

SELECT SUBSTRING(date_time,1,10), SUM(Total), sum(Total_ly)) 
FROM Transaction 
WHERE Substring(date_time,1,10) between '01/03/2019' AND '04/04/2019' 
Group By date_time 
Having sum(Total)<>0;

所以在我的表中如下:

date_time \ Total 
01/03/2019  45.00    
02/03/2019  34.00
23/03/2019  12.00
01/04/2019  90.00
25/04/2019  32.00

预期输出:

March 2019  91.00
April 2019  122.00

我对总列所做的只是求和。另外我知道有人会问为什么我是另一个应用程序的子字符串(date_time)我需要时间,但对于这个我只需要日期。

无论如何,我正在尝试使用 MonthName 函数并传递日期,但这仅适用于一个日期而不是一个范围。

谁能指出我正确的方向

标签: mysql

解决方案


使用date_format()功能

SELECT DATE_FORMAT(SUBSTRING(date_time,1,10),"%M %Y"), SUM(Total), sum(Total_ly)) 
FROM Transaction 
WHERE Substring(date_time,1,10) between '01/03/2019' AND '04/04/2019' 
Group By DATE_FORMAT(SUBSTRING(date_time,1,10),"%M %Y") 
Having sum(Total)<>0

推荐阅读