sql如何获取日期月份的第一天

2024-11-08 08:39:19
推荐回答(4个)
回答1:

如:给定的年月格式为20157,代表2015年7月。

取某月第一天:

SELECT CAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01') AS DATETIME)

结果:

回答2:

SELECT CONVERT(datetime,CONVERT(char(8),GETDATE(),120)+'1')--这月的第一天
select dateadd(d,-day(getdate()),dateadd(m,1,getdate()))--这月的最后一天
SELECT DATEADD(mm,DATEDIFF(mm,0,dateadd(month,-1,getdate())),0)--上月第一天
select dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))--上月最后一天

回答3:

如果是Oracle,可以这样写:

 select to_date(to_char(sysdate,'yyyy-mm')||'-01', 'yyyy-mm-dd') from dual;
 或者
 select add_months(last_day(sysdate)+1,-1) from dual;
 再或者:select trunc(sysdate,'month') from dual;

 sqlserver可以这样:

select cast(convert(varchar(8),getdate(),23)+'01' as datetime);

回答4:

看传过来的日期类型是什么类型,才有不同的答案