Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何找到两个月期间的开始和结束日期?SQL Server_Sql Server_Date - Fatal编程技术网

Sql server 如何找到两个月期间的开始和结束日期?SQL Server

Sql server 如何找到两个月期间的开始和结束日期?SQL Server,sql-server,date,Sql Server,Date,如何找到两个月期间的开始和结束日期 例如: 当前日期:2015年2月9日;开始日期:2015年1月1日;截止日期:2015年2月28日 当前日期:2015年6月5日;开始日期:2015年5月1日;截止日期:2015年6月30日 假设您没有SQL Server 2012或更新版本,这将起作用: DECLARE @Date DATETIME = '09-Feb-2015' SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0) AS Start,

如何找到两个月期间的开始和结束日期

例如:

  • 当前日期:2015年2月9日;开始日期:2015年1月1日;截止日期:2015年2月28日
  • 当前日期:2015年6月5日;开始日期:2015年5月1日;截止日期:2015年6月30日

假设您没有SQL Server 2012或更新版本,这将起作用:

DECLARE @Date DATETIME = '09-Feb-2015'

SELECT  DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0) AS Start,
        DATEADD(DAY,-1,DATEADD(mm, DATEDIFF(MONTH,0,@Date)+1,0))
SELECT  DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(MONTH, -1+MONTH(@Date)%2, @Date)), 0) AS StartOfPeriod,
        DATEADD(DAY, -1, DATEADD(mm, DATEDIFF(MONTH, 0, DATEADD(MONTH, MONTH(@Date)%2, @Date)) + 1, 0))
如果您有SQL 2012,则可以使用:

更新

在您添加您希望每两个月一次的评论后,假设这意味着您将一年分成两个月,第一对是1月/2月,第二对是3月/4月,依此类推,这将起作用:

DECLARE @Date DATETIME = '09-Feb-2015'

SELECT  DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0) AS Start,
        DATEADD(DAY,-1,DATEADD(mm, DATEDIFF(MONTH,0,@Date)+1,0))
SELECT  DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(MONTH, -1+MONTH(@Date)%2, @Date)), 0) AS StartOfPeriod,
        DATEADD(DAY, -1, DATEADD(mm, DATEDIFF(MONTH, 0, DATEADD(MONTH, MONTH(@Date)%2, @Date)) + 1, 0))

我需要两个月一次这完全符合你的要求。上个月的第一天和指定月份的最后一天。不完全正确。我需要的开始日期和结束日期根据当前日期两个月。如果当前日期为2015年5月1日,则起始日期应为2015年1月1日,最终日期应为2015年2月28日。那么如何定义“当前两个月”?一年将分为六个期间,即每两个月一次。在这种情况下,我需要根据当前日期确定期间的开始和结束日期。