sql 获取当前月的第一天

来源:百度知道 编辑:UC知道 时间:2024/06/22 00:29:41
Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
这条语句可以获取当月的第一天, 我知道DATEDIFF(mm,0,getdate()) 的意思。查了一下午资料也没明白DATEADD(,,)是干什么 ,是怎么算的。
DATEADD (datepart ,number,date ) datepart 我知道什么意思,number,date 是什么意思呢。
DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
是怎么计算的呢? 最后面的 0 是什么意思

DATEDIFF(mm,0,getdate())用来计算出“0”和当前日期所相差的月份数,比如说相差10个月。
DATEADD (mm,x,0)
在0日期的基础上,加上x个月。
那么就相当于把去掉了日期,只留下了月份,也就是当前月份了。没有日期,也就是第一天的0点了。

DATEADD ( datepart , number, date )
datepart 是指日期的部分,年,月,日什么的
number 是要加的数量
date 是指在那个日期基础上加

select convert(datetime,(convert(varchar(4),year(getdate()))+'-'+convert(varchar(4),month(getdate()))+'-1'))

以上,希望对你有所帮助!

SELECT CONVERT(DATETIME, LEFT(CONVERT(CHAR(8), GETDATE(),112),6) + '01')

试试吧!

SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')