我有一个包含以下列和数据的表记录-
Date | Value
01-01-2008 3040
02-01-2008 3940
03-01-2008 4240
01-03-2008 5340
01-04-2008 5540
01-05-2008 4340
04-09-2009 7800
'
'
31-12-2013 4350
日期范围从 2008 年 1 月 1 日到 2013 年 12 月 31 日,对应值。
有没有我可以写的任何 mysql 语句,它可以让我得到年月的第一个日期和相应的值。
有点像-
01-01-2008 3040
01-02-2008 corresponding value
01-03-2008 corresponding value
每年的每个月。
最佳答案
如果你想在数据库中找到每个月的第一天,你可以使用 day()
功能
select *
from table
where day(`Date`) = 1
根据您的格式,我怀疑您已将日期作为字符串存储在 varchar 字段中,那么您可能需要 str_to_date()
将其转换为真实的日期对象
select *
from table
where day(str_to_date(`Date`,'%d-%m-%Y')) = 1
根据评论编辑
如果你想找到每个月的最小日期,你可以通过使用日期值并按月和年分组来使用自连接
select *
from test t
join (
select min(`Date`) `Date`
from test
group by month(`Date`),
year( `Date`)
) t1
on(t.`Date` = t1.`Date`)
Sample Demo 2 我已经在 fiddle 中更新了一些数据以便更好地分析
关于mysql - 获取每个月&年的第一个日期和对应的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25832580/