2015-02-09 93 views

回答

1

假設你沒有的SQL Server 2012或更高版本,這將工作:

DECLARE @Date DATETIME = '09-Feb-2015' 

SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0) AS Start, 
     DATEADD(DAY,-1,DATEADD(mm, DATEDIFF(MONTH,0,@Date)+1,0)) 

如果你有SQL 2012,您可以使用EOMONTH

SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0) AS Start, 
     EOMONTH(@Date) 

UPDATE

之後你要Bimont公司的意見添加溶血素,並假設這意味着/要拆分一年分爲2個月的段與一月二月的第一對,3月/ 4作爲下等,這將工作:

SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(MONTH, -1+MONTH(@Date)%2, @Date)), 0) AS StartOfPeriod, 
     DATEADD(DAY, -1, DATEADD(mm, DATEDIFF(MONTH, 0, DATEADD(MONTH, MONTH(@Date)%2, @Date)) + 1, 0)) 
+0

我需要隔月 – 2015-02-09 14:03:58

+0

這完全按照您的要求工作。上個月的第一天和指定月份的最後一天。 – DavidG 2015-02-09 14:08:39

+0

不完全。我需要根據當前日期兩個月的開始日期和結束日期。如果當前日期爲01/05/15,則開始日期應爲01/01/15,並且最終日期爲2015年2月28日。 – 2015-02-09 15:37:03

相關問題