在sql server中为已存储在sql数据库中的月份选择一个月的第一天和最后一天

本文关键字:sql 一个 第一天 最后一天 选择 存储 数据库 server | 更新日期: 2023-09-27 18:19:27

我对此有一个小想法,但我不知道如何在sql server(MSDN)中解释它。

if (Month < ActualMonth)
{
  (StartDateReq = FirstDayMonth);
  (EndDatereq) = LastDayMonth);
}
else if (Month = currenTimeStamp)
 {
  (EndDateReq = currentTimeStamp);
 }

在sql server中为已存储在sql数据库中的月份选择一个月的第一天和最后一天

如果您在SQL Server中有一个日期,您可以使用获取一个月的第一天和最后一天

select dateadd(day, 1 - day(datecol), datecol) as firstday,
       dateadd(day, -1, dateadd(month, 1, dateadd(day, 1 - day(datecol), datecol))) as lasstday

在SQL Server 2012+中,可以在一个月的最后一天使用函数EOMONTH()

借鉴Gordon的答案:

DECLARE @myDate Date = '2015-10-25'
select DATEADD(DAY, 1 - DAY(@myDate), @myDate) as firstday,
       CASE WHEN YEAR(@myDate) = YEAR(GETDATE()) AND 
                 MONTH(@MyDate) = MONTH(GETDATE()) 
       THEN @MyDate
       ELSE DATEADD(DAY, -1, DATEADD(MONTH, 1, DATEADD(DAY, 1 - DAY(@myDate), @myDate))) 
       END as lasstday