假设我有月份4月4日和年份作为当年,现在如何获得第4个月的第一个和最后一个日期?
答案 0 :(得分:1)
对于SQL 2012+,您可以使用datefromparts
和eomonth
,例如以下查询:
DECLARE @Year int = 2017,
@Month int = 5
SELECT datefromparts(@Year, @Month, 1) AS TheFirstDateOfMonth,
eomonth(datefromparts(@Year, @Month, 1)) AS TheFirstDateOfMonth
对于旧版本,您可以使用dateadd
SELECT
dateadd(month, @Month - 1, CAST(@Year AS varchar(4)) + '0101') AS TheFirstDateOfMonth,
dateadd(day, -1 , dateadd(month, @Month , CAST(@Year AS varchar(4)) + '0101')) AS TheLastDateOfMonth
答案 1 :(得分:0)
DECLARE @monthId int = 4
DECLARE @Year int = YEAR (GETDATE())
使用monthid的最后一天
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,'' +CONVERt(VARCHAR(5),@Year)+ '-' + CONVERt(VARCHAR(5),@monthId) + '-01')+1 ,0))
使用monthid的第一天的月份
SELECT DATEADD(s,0,DATEADD(mm, DATEDIFF(m,0,'' +CONVERt(VARCHAR(5),@Year)+ '-' + CONVERt(VARCHAR(5),@monthId) + '-01'),0))