SQL Server查找月 - 月范围的结束日期
问题描述:
在我的SQL Server过程中,我有一个输入参数,如created_date
。SQL Server查找月 - 月范围的结束日期
根据创建的日期,我必须找出该月的第一个和最后一个日期。
For example,
如果CREATED_DATE是12-08-2016
,
start_date should be '01-08-2016'
end_date should be '31-08-2016'
如果CREATED_DATE是15-06-2016
start_date should be '01-06-2016 00:00:00'
end_date should be '30-06-2016 23:59:59'
答
select
DATEADD(Month, DATEDIFF(Month, 0, GETDATE()), 0) as monthfirstdate,
CAST(EOMONTH(GETDATE()) as DATETIME) as monthlastdate
EOMONTH从SQL Server 2012
答
工作由于您的输入在DD-MM-YYYY
格式,所以需要先转换为MM-DD-YYYY
,那么只有很容易找到月份的第一天和最后一天。
下面的查询将接受输入,并在您期望的格式返回结果:
DECLARE @datevalue AS VARCHAR(20) = '15-06-2016'; --12-08-2016';
SELECT CONVERT(VARCHAR(10), DATEADD(M, DATEDIFF(M, 0, CONVERT(DATETIME, @datevalue, 105)), 0), 105) [start_date],
CONVERT(VARCHAR(10), DATEADD(D, -1, DATEADD(M, DATEDIFF(m, 0, CONVERT(DATETIME, @datevalue, 105)) + 1, 0)), 105) [end_date]
输出:
start_date end_date
----------------------
01-06-2016 30-06-2016
使用谷歌:https://sqlandme.com/2011/05/ 16 /如何获取第一个和最后一个月的tsql/ –
通过以下URL获得答案,http://*.com/questions/16277504/what-is-the-equivalent -of-预言,末日的功能,在-SQL服务器2008 – Srinivasan