【发布时间】:2010-11-26 14:19:17
【问题描述】:
我正在尝试使用明确的时间填充表达式(参数的默认值)。如何从“现在”功能中删除时间?
【问题讨论】:
-
请务必注意,即使
中的 SQL 仅返回 Date 变量,rdl 仍将使用 DateTime。因此,它必须由 rdl 格式化——请参阅下面的各种答案。
标签: reporting-services expression ssrs-expression
我正在尝试使用明确的时间填充表达式(参数的默认值)。如何从“现在”功能中删除时间?
【问题讨论】:
标签: reporting-services expression ssrs-expression
类似这样的:
=FormatDateTime(Now, DateFormat.ShortDate)
其中“现在”可以替换为您尝试转换的日期/时间字段的名称。)
例如,
=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
【讨论】:
由于 SSRS 使用 VB,您可以执行以下操作:
=Today() 'returns date only
如果你要使用:
=Now() 'returns date and current timestamp
【讨论】:
Today() 仅返回值的日期,但返回的数据类型是 DateTime。
=CDate(Now).ToString("dd/MM/yyyy")
尽管您将日期格式硬编码为区域设置。
【讨论】:
如果您希望结果为DateTime 数据类型,只需使用DateValue(Now)。
【讨论】:
如果预期的数据格式是MM-dd-yyyy,那么试试下面,
=CDate(Now).ToString("MM-dd-yyyy")
同样你可以试试这个,
=Format(Today(),"MM-dd-yyyy")
输出: 02-04-2016
注意:Now() 将显示当前日期和时间戳
Today() 只会向您显示日期,而不是时间部分。
在我的示例中,您还可以设置任何日期格式,而不是 MM-dd-yyyy。
【讨论】:
在任何文本框字段的格式属性中,您都可以使用格式字符串:
例如日/月/年、日等
【讨论】:
可能对其他人有所帮助的一件事是,您可以将:=CDate(Now).ToString("dd/MM/yyyy") 放在 SSRS 的格式字符串属性中,可以通过右键单击该列来获得。这是最干净的方法。那么你的表达式就不会太大并且难以在视觉上“解析”:)
【讨论】:
FormatDateTime(Parameter.StartDate.Value)
【讨论】:
我来晚了,但我尝试了上述所有解决方案!无法让它在参数中删除零并给我一个默认值(它忽略了格式或显示为空白)。我使用的是 SSRS 2005,因此一直在努力解决其笨重/错误的问题。
我的解决方法是在我从中提取日期的数据库中的自定义 [DimDate] 表中添加一列。我添加了一个列,它是 [date] 列所需格式的字符串表示形式。然后,我在 SSRS 中创建了 2 个新数据集,这些数据集为我的“到”和“从”日期默认值提取了以下 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()
)
【讨论】:
我对日期/时间参数的解决方案:
=CDate(Today())
诀窍是按照 Perhentian 的建议转换回 DateTime。
【讨论】:
从here找到解决方案
获取前一天的最后一秒:
DateAdd("s",-1,DateAdd("d",1,Today())
这将返回前一周的最后一秒:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
【讨论】:
只需将字符串连接到值的末尾即可:
Fields!<your field>.Value & " " 'test'
这应该可以工作!
【讨论】:
这应该在数据集中完成。你可以这样做
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
在SSRS 布局中,只需这样做=Fields!DateColumnName.Value
【讨论】: