我有一个SSRS报告,其中包含两个日期时间参数。当然,日期选择器不允许您选择与dateTIME一起使用的时间,这太有意义了。所以我的想法是给datetime参数一个默认时间。例如,如果我希望参数的默认值为今天上午8:30的日期,我该怎么做?
所以,如果今天是2013年9月4日,我想看到这个:09/04/2013 8:30 AM。
我尝试了各种格式化。我得到的最接近的是:
=CDate(Format(Today(), "MM/dd/yyyy") & " 8:30 AM")
但是我从来没有能够得到不显示的秒数,因为你总是必须从字符串转换回日期时间,否则你会得到一个无效的类型错误,并且CDdate总是显示秒。
答案 0 :(得分:7)
您似乎正在尝试直接在参数的默认值中格式化日期,这是正确的吗?问题是,CDate()将字符串转换为DateTime;和DateTime对象有几秒钟。如果您不想在报表中显示这些秒数,则应将日期转换为格式化字符串,例如:
=Format(Parameters!yourParameter.Value, "MM/dd/yyyy hh:mm")
为了设置日期参数的默认时间,您还可以在参数默认值中使用以下内容:
Today().AddHours(8).AddMinutes(30)
答案 1 :(得分:1)
我尝试了在SO上找到的所有内容来格式化这些日期,但无法将其作为日期字段删除参数中的零或只显示为空白。我正在使用SSRS 2005,所以正在努力解决其笨重/错误问题。
我的解决方法是在我的数据库中的自定义[DimDate]表中添加一列以提取日期。我添加了一个只是[date]列的字符串表示的列。然后,我创建了2个新数据集,这些数据集在以下查询中为我的' To'提供了2个默认值。 &安培; '从'日期默认值 -
'从'
SELECT Datestring FROM dbo.dimDate WHERE [date] =
(SELECT max(date) FROM dimdate WHERE date <= GETDATE() )
&#39;至&#39;
SELECT Datestring FROM dbo.dimDate WHERE [date] =
(SELECT max(date) FROM dimdate WHERE date < DATEADD(month,-3,GETDATE()))
答案 2 :(得分:0)
使用此=DateAdd("s",-1,DateAdd("d",1,Parameters!dateTo.Value))
作品可让我通过更改为小时来调整时间。