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

如题所述

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

取某月第一天:

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

结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-22
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))--上月最后一天 </span>
第2个回答  推荐于2018-02-27

如果是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);

本回答被提问者和网友采纳
第3个回答  2014-10-23
看传过来的日期类型是什么类型,才有不同的答案