当前位置: 代码迷 >> Sql Server >> Sql话语!获取上月初始时间到结束时间
  详细解决方案

Sql话语!获取上月初始时间到结束时间

热度:71   发布时间:2016-04-27 12:17:22.0
Sql语句!获取上月初始时间到结束时间!
比如:2012-05-01:0:0:0(0时 0分 0秒)------2012-05-31 :23:59:59 (23时:59分:59分)


  2012-06-01:0:0:0(0时 0分 0秒)-------2012-06-30 :23:59:59(23时:59分:59分)


获取:上月初开始时间到 上月的末时间 个获取

------解决方案--------------------
SQL code
--获取当前时间SELECT GETDATE();--获取当前时间“天”部分SELECT DATEPART(day,GETDATE());--获取本月第一天时间(当前日期减去本月已过的天数)SELECT CONVERT(varchar(10),GETDATE()-DATEPART(day,GETDATE())+1,120);--获取本月最后一天时间(本月第一天加一个月,再减一天)SELECT DATEADD(day,-1,DATEADD(month,1,CONVERT(varchar(10),GETDATE()-DATEPART(day,GETDATE())+1,120)));
------解决方案--------------------
SQL code
declare @t datetimeset @t = getdate()select  convert(datetime,convert(varchar(7),dateadd(month,-1,@t),120)+'-01')
------解决方案--------------------
23:59:59 这个是固定的。

可以做个连接字符串

后面+' 23:59:59'

懂了吗?
------解决方案--------------------
SQL code
SELECT DATEADD(Month,-1,CONVERT(datetime,CONVERT(char(8),getdate(),120)+'1'))SELECT DATEADD(Month,-1,DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,getdate()),120)+'1'))
------解决方案--------------------
--获取本月第一天时间(当前日期减去本月已过的天数)
SELECT CAST(CONVERT(varchar(10),GETDATE()-DATEPART(day,GETDATE())+1,120) AS datetime); --看结果

--获取本月最后一天时间(本月第一天加一个月,再减一秒)
SELECT DATEADD(second,-1,DATEADD(month,1,CONVERT(varchar(10),GETDATE()-DATEPART(day,GETDATE())+1,120))); --看结果
------解决方案--------------------
SQL code
--获取本月第一天时间(当前日期减去本月已过的天数)SELECT CAST(CONVERT(varchar(10),GETDATE()-DATEPART(day,GETDATE())+1,120) AS datetime); --看结果--获取本月最后一天时间(本月第一天加一个月,再减一秒)SELECT DATEADD(second,-1,DATEADD(month,1,CONVERT(varchar(10),GETDATE()-DATEPART(day,GETDATE())+1,120))); --看结果
------解决方案--------------------
要注意要动动脑筋。。
------解决方案--------------------
SQL code
SELECT DATEADD(Month,-1,CONVERT(datetime,CONVERT(char(8),getdate(),120)+'1'))SELECT DATEADD(Month,-1,DATEADD(s,-1,CONVERT(char(8),DATEADD(Month,1,getdate()),120)+'1'))
  相关解决方案