Reporting Services从expression式中的DateTime中删除时间
我想用一个明确的时间填充一个expression式(一个参数的默认值)。 如何从“现在”function中删除时间?
像这样的东西:
=FormatDateTime(Now, DateFormat.ShortDate)
“现在”可以replace为您要转换的date/时间字段的名称。)
例如,
=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
由于SSRS利用VB,您可以执行以下操作:
=Today() 'returns date only
如果您要使用:
=Now() 'returns date and current timestamp
=CDate(Now).ToString("dd/MM/yyyy")
虽然你正在将date拼凑到一个语言环境。
如果你必须在报表头上显示字段,那么试试这个…右键单击文本框>属性>类别>date>select*格式(注意这将保持区域设置)。
由于这个问题已被多次查看,我发布了…希望它有帮助。
只要使用DateValue(Now)
如果你想要的结果是DateTime
数据types。
在任何文本框字段的格式属性中,您可以使用格式string:
例如D / M / Y,D等
如果预期的数据格式是MM-dd-yyyy
然后在下面尝试 ,
=CDate(Now).ToString("MM-dd-yyyy")
同样你可以试试这个,
=Format(Today(),"MM-dd-yyyy")
产出: 02-04-2016
注意:
Now()
将显示当前的date和时间戳
Today()
将显示date而不是时间部分。
也可以在我的例子中设置任何date格式,而不是MM-dd-yyyy
。
有一件事可以帮助别人,你可以在SSRS的格式string属性中放置: =CDate(Now).ToString("dd/MM/yyyy")
,这个属性可以通过右击列来获得。 这是最干净的方式。 那么你的表情不会太大,难以直观地“parsing”:)
FormatDateTime(Parameter.StartDate.Value)
我在比赛中迟到了,但我尝试了上面的所有解决scheme! 无法让它在参数中删除零,并给我一个默认(它忽略了格式或出现空白)。 我正在使用SSRS 2005,所以正在与其笨重/错误的问题挣扎。
我的解决方法是添加一个列到我的数据库中的自定义[DimDate]表,我拉date。 我添加了一个列,它是[date]列所需格式的string表示forms。 然后,我在SSRS中创build了2个新的数据集,在下面的查询中为我的“收件人”和“发件人”date默认设置了2个默认值 –
'从'
SELECT Datestring FROM dbo.dimDate WHERE [date] = ( SELECT MAX(date) FROM dbo.dimdate WHERE date < DATEADD(month, -3, GETDATE() )
'至'
SELECT Datestring FROM dbo.dimDate WHERE [date] = ( SELECT MAX(date) FROM dbo.dimdate WHERE date <= GETDATE() )
我的date/时间参数的解决scheme:
=CDate(Today())
诀窍是作为build议Perhentian转换回DateTime。
从这里find解决scheme
这是前一天的最后一秒:
DateAdd("s",-1,DateAdd("d",1,Today())
这将返回前一周的最后一秒:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
这应该在数据集中完成。 你可以做到这一点
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
在SSRS
布局中,只要做到这一点=Fields!DateColumnName.Value
只需将一个string连接到值的末尾:
Fields!<your field>.Value & " " 'test'
这应该工作!