Sql server 2012 如何在SQL SERVER中获取给定月份和年份的完整日期?

Sql server 2012 如何在SQL SERVER中获取给定月份和年份的完整日期?,sql-server-2012,Sql Server 2012,我有下面的脚本,我需要得到完整的日期 DECLARE @BeginDate DateTime DECLARE @EndDate DateTime Declare @month int Declare @year int set @month = 6 set @year = 2014 Select beginDate = CAST(@month AS VARCHAR(10)) + '/01/' + CAST(@year AS VARCHAR(10)) SELECT endDate = DATE

我有下面的脚本,我需要得到完整的日期

DECLARE @BeginDate DateTime
DECLARE @EndDate DateTime
Declare @month int
Declare @year int 
set @month = 6
set @year = 2014

Select beginDate = CAST(@month AS VARCHAR(10)) + '/01/' + CAST(@year AS VARCHAR(10))
SELECT endDate = DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @beginDate) + 1, 0))
此脚本将endDate返回为null。如何通过只传递日期(而不是时间)来获得完整的endDate?我找到了

DECLARE @BeginDate DateTime
DECLARE @EndDate DateTime
Declare @month int
Declare @year int 
set @month = 7
set @year = 2014

Select @beginDate = CAST(@month AS VARCHAR(10)) + '/01/' + CAST(@year AS VARCHAR(10))
SELECT endDate = DATEADD(d, -DAY(DATEADD(mm, 1, @beginDate)), DATEADD(m, 1, @BeginDate))

我想你忘了在变量前面加上@号。如果使用以下内容更改最后两行:

Select @beginDate = CAST(@month AS VARCHAR(10)) + '/01/' + CAST(@year AS VARCHAR(10))
SELECT @endDate = DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @beginDate) + 1, 0))
它应该会起作用。通过在末尾加上“select@enddate”,我得到了2014-06-30 00:00:00.000