日期:2014-05-18  浏览次数:20471 次

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 datetime
set @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'))