如何在mysql数据库中取得每月第一天和最后一天之间的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在mysql数据库中取得每月第一天和最后一天之间的数据?相关的知识,希望对你有一定的参考价值。

参考技术A

1 某一天的所在月的第一天:

select date_add(date_add(last_day('2008-02-01'),interval 1 day),interval -1 month);

某一天的所在月的最后一天:

select last_day('2008-02-01');

2 加在语句中:

select ... where dt between date_add(date_add(last_day('2012-02-01'),interval 1 day),interval -1 month) and last_day('2012-02-01');

sql如何取某年某月的第一天和最后一天

参考技术A

SELECT CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)--第一天

SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)))--最后一天

原理:第一天肯定是1号拉 ,最后一天是下个月第一天减一天。

本月第一天

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate()), 0)) as mouthlastdate

下月第一天:

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as mouthlastdate

下下月第一天:

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+2, 0)) as mouthlastdate

扩展资料

sqlserver 时间格式函数详细

--getdate 获取当前时间

select getdate()

--dateadd 原有时间加: 2013-02-17 13:20:16 此时间加12个月

select dateadd(MONTH,12,'2013-02-17 13:20:16')  --返回:2014-02-17 13:20:16.000  (参数month可以改为 day,year等日期加相应的值)

--datediff 两个时间的差 (后面-前面=返回值)

select datediff(day,'2013-02-01','2013-02-18')   --返回:17  (参数day可以改为 month,year等日期加相应的值)

--datepart 获取日期的某个部分整数

select DATEPART(month, '2013-2-17')  --返回 2    (参数month可以改为 day,year等日期加相应的值)

--datename 获取指定部位的字符串

select datename(weekday, '2013-2-17')  --返回 星期日 (参数weekday可以改为 day,year等日期加相应的值)

--day(), month(),year() 获取指定部位的字符串

select day('2013-2-15') --返回15

以上是关于如何在mysql数据库中取得每月第一天和最后一天之间的数据?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Power Query 过滤每月第一天和最后一天的日期

sql如何取某年某月的第一天和最后一天

SQL Server学习记录之获取每月每季度每年第一天和最后一天

C#如何获得当前月的第一天与最后一天

js代码实现,如何获取当前月份的最后一天

python怎么获得每个月的第一天和最后一天