Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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 如何从作为参数传递的月份和年份创建完整的datetime_Sql_Sql Server_Reporting Services - Fatal编程技术网

Sql 如何从作为参数传递的月份和年份创建完整的datetime

Sql 如何从作为参数传递的月份和年份创建完整的datetime,sql,sql-server,reporting-services,Sql,Sql Server,Reporting Services,我想让用户从文本框中选择报告中的月份和年份,并使用这些参数为我的服务器参数“DateFrom”和“DateTo”创建月份的第一天和最后一天,这样我就可以将它们用作过滤器 我试过: @DateFrom DATETIME, @DateTo DATETIME, @Month NVARCHAR(MAX) = NULL, @Year NVARCHAR(MAX) = NULL AS BEGIN

我想让用户从文本框中选择报告中的月份和年份,并使用这些参数为我的服务器参数“DateFrom”和“DateTo”创建月份的第一天和最后一天,这样我就可以将它们用作过滤器

我试过:

@DateFrom           DATETIME,
@DateTo             DATETIME,
@Month              NVARCHAR(MAX) = NULL,
@Year               NVARCHAR(MAX) = NULL

AS
  BEGIN
      SET NOCOUNT ON;

SET @DateFrom = '1.' & @Month & @Year
SET @DateTo = DATEADD(m, 1, DATEADD(s, -1, @DateFrom))
欢迎提供任何帮助。

试试这个

SET @DateFrom = SELECT CAST(@Year + '-' + @Month + '-' + '01' AS DATE)
SET @DateTo = DATEADD(m, 1, DATEADD(s, -1, @DateFrom))

您是否查看了
DATEFROMPARTS
,链接编辑您的问题并提供示例数据和所需结果。在处理日期和字符串时,为什么要使用位运算符(
&
)?您使用的是什么版本的SQL Server?Server 2008,MSMS 2016尝试打印日期并检查正在设置的日期。我用探查器捕捉到了它。输出似乎正常:exec SSRS_SP_Report_ticketrsales@DateFrom='2017-05-01 00:00:00',@DateTo='2017-05-31 00:00:00',因此日期设置正确。然后,请检查程序的其余部分以了解问题。还有一件事是使用DateTime而不是Date,这样DateTo应该覆盖到23:59:59而不是00:00:00。既然日期设置正确,我想你可以接受这个答案。