3 回答

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以在指定月份的第一天使用以下命令:
datediff(day, @date, dateadd(month, 1, @date))
要使它適用于每個(gè)日期:
datediff(day, dateadd(day, 1-day(@date), @date),
dateadd(month, 1, dateadd(day, 1-day(@date), @date)))

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
在SQL Server 2012中,可以使用EOMONTH(Transact-SQL)來(lái)獲取月份的最后一天,然后可以使用DAY(Transact-SQL)來(lái)獲取月份中的天數(shù)。
DECLARE @ADate DATETIME
SET @ADate = GETDATE()
SELECT DAY(EOMONTH(@ADate)) AS DaysInMonth

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
最優(yōu)雅的解決方案:適用于任何@DATE
DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,@DATE),0)))
將其扔到函數(shù)中或直接內(nèi)聯(lián)使用。這將回答原始問(wèn)題,而其他答案中沒(méi)有所有多余的垃圾。
來(lái)自其他答案的日期示例:
SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,'1/31/2009'),0))) 返回31
SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,'2404-feb-15'),0))) 返回29
SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,'2011-12-22'),0))) 返回31
- 3 回答
- 0 關(guān)注
- 683 瀏覽
添加回答
舉報(bào)