我想在SQL中获取当前日期,然后它将自动输出该日期的截止日期。
select cast(getdate() AS DATE)
示例:今天是6/13/2019,那么它应该输出该月的第二个截止日期
6/11/2019 - 6/25/2019
如果我选择6/10/2019,则输出应为
5/26/2019 - 6/10/2019
答案 0 :(得分:0)
尝试一下
Declare @Get_Date date=getdate()
Select iif
(
Datepart(day,@Get_Date)<11 or Datepart(day,@Get_Date) between 26 and 31
,Format(Dateadd(day,-5,EOMONTH(@Get_Date,iif(Datepart(day,@Get_Date) between 26 and 31,0,-1))),'dd/MM/yyyy')
,Format(Dateadd(day,11,EOMONTH(@Get_Date,-1)),'dd/MM/yyyy')
) as Cutoff_Start_Date,
iif
(
Datepart(day,@Get_Date)<11 or Datepart(day,@Get_Date) between 26 and 31
,Format(Dateadd(day,10,EOMONTH(@Get_Date,iif(Datepart(day,@Get_Date) between 26 and 31,0,-1))),'dd/MM/yyyy')
,Format(Dateadd(day,25,EOMONTH(@Get_Date,-1)),'dd/MM/yyyy')
) as Cutoff_End_Date
答案 1 :(得分:0)
我认为您应该使用
Declare datetime @CurrentDate = GetDate(); -- 13Jun19 04:13:23
Declare datetime @D25OfMonth = GetDate() - DatePart(day, GetDate()) + 25; --25Jun19 04:13:23
Declare datetime @D10OfMonth = GetDate() - DatePart(day, GetDate()) + 11; --11Jun19 04:13:23
但是这里有一个陷阱。您希望截止日期在哪一天(午夜,当前时间,中午)?您基本上是通过添加一个整数来操纵日期时间,从而向前(+)或向后(-)向前移动一天。