Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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 将“年”列和“月”列合并到当前_Sql_Sql Server_Tsql_Date - Fatal编程技术网

Sql 将“年”列和“月”列合并到当前

Sql 将“年”列和“月”列合并到当前,sql,sql-server,tsql,date,Sql,Sql Server,Tsql,Date,在我的数据库中,我有一个报告年列(char(4))和一个报告月列(varchar(2))。我正在制作一个ssrs报告,该报告将使用存储过程,并将从此表中提取数据,我的参数是日期和年份。我成功地做到了这一点,我铸造了这两个列并将它们连接起来,同时在它们之间添加了一个“/”。因此,在SSRS报告中,用户需要输入的参数是月份和日期(例如,2016年9月) 用户需要下拉列表来获取日期。因为我的参数是一个varchar,所以它会直接询问上面格式的月份和年份。不管怎样,有没有办法在没有日期的情况下,只在月份

在我的数据库中,我有一个报告年列(char(4))和一个报告月列(varchar(2))。我正在制作一个ssrs报告,该报告将使用存储过程,并将从此表中提取数据,我的参数是日期和年份。我成功地做到了这一点,我铸造了这两个列并将它们连接起来,同时在它们之间添加了一个“/”。因此,在SSRS报告中,用户需要输入的参数是月份和日期(例如,2016年9月)

用户需要下拉列表来获取日期。因为我的参数是一个varchar,所以它会直接询问上面格式的月份和年份。不管怎样,有没有办法在没有日期的情况下,只在月份和年份的情况下,将这段视频播放到今天?我尝试了datediff和dateadd函数,但运气不好

Select BegMonth = cast(Replace('09/2016','/','/01/') as date)
      ,EndMonth = EOMonth(cast(Replace('09/2016','/','/01/') as date))
返回

BegMonth    EndMonth
2016-09-01  2016-09-30

年和月是整数,请使用适当的数据类型。如果您正在处理日期,请使用
date
datatype。使用正确的数据类型使一切变得更容易。我也不明白你的问题,你是在问你是否可以将'09/2016'转换为日期时间?不行,约会需要一天。如果希望默认为一天,可以使用
DATEFROMPARTS
SUBSTRING
。我尝试将它们都转换为int,并将变量创建为int。当我这样做时,它不会给出任何结果。示例:将@reportdate声明为int='201609'选择。。。。从…起哪里和cast(reportyear为int)+cast(reportmonth为int)=atreportdate(我不能使用多个“at”符号,所以我字面上把它放在)hmm。。。我喜欢这个想法,但它不能解决我在SSRS中的问题。我需要一个包含月份和年份的下拉列表。这一天对我来说并不重要,因为那里没有一个日场。我们只考虑了当月输入的数据,因此有一列表示年份和月份。我不同意字段的构建方式,但嘿,我没有创建它。