日期:2014-05-17  浏览次数:20534 次

请教 sql server获取时间问题
谁能帮我写个sql语句,我想获得当月的第一天时间和最后一天时间
比如,现在是2013年5月17日9点16分。
获取的的结果为2013年5月1日0时0分0秒和013年5月31日23时59分59秒
declare @currentFirst  datetime
declare @currentLast daetime
--最后获取的结果为
@currentFirst='2013-5-1 00:00:00'
@currentLast ='2013-5-31 23:59:59'

------解决方案--------------------

declare @currentFirst datetime
declare @currentLast datetime

select @currentFirst=left(convert(varchar,getdate(),111),8)+'01 00:00:00',
       @currentLast=dateadd(s,-1,dateadd(m,1,@currentFirst))

select @currentFirst '第一天时间',@currentLast '最后一天时间'

/*
第一天时间                   最后一天时间
----------------------- -----------------------
2013-05-01 00:00:00.000 2013-05-31 23:59:59.000

(1 row(s) affected)
*/

------解决方案--------------------

declare @currentFirst  datetime
declare @currentLast   datetime
set @currentFirst=DATEADD(month,datediff(month,0,GETDATE()),0)
set @currentLast=dateadd(second,-1,DATEADD(month,datediff(month,-1,GETDATE()),0))
select @currentFirst --第一天
select @currentLast  --最后一天