我有一年的库存数据,我想提取每个月数据的第一天和最后一天。做这个的最好方式是什么?
这是一个非常开放的描述,如果您使用的数据存在复杂性,可以使用更多详细信息。但这里有一个基本的想法。
一个月的第一天很简单:YYYYMM01
一个月的最后一天可以很容易地通过以下方式计算:
DECLARE @FirstDayOfMonth DATETIME; -- Use DATETIME for older SQL Server versions
SET @FirstDayOfMonth = '20150601' -- Safest format for dates.
SELECT DATEADD(DAY,-1,(DATEADD(MONTH,1,@FirstDayOfMonth)));
Run Code Online (Sandbox Code Playgroud)
这使查找该月的最后一天变得轻而易举。是下个月的第一天的前一天。无需计算闰年、月长等。
继@RLF 的解决方案之后,SQL Server 2012及更高版本的每月最后一天的替代解决方案是使用新EOMONTH()
函数。
如果您使用的是 SQL Server 2008 R2 或更低版本,这对您不起作用。
DECLARE @FirstDayOfMonth DATE;
SET @FirstDayOfMonth = '20150601';
SELECT EOMONTH(@FirstDayOfMonth);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
202 次 |
最近记录: |