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' 

这应该工作!