【发布时间】:2015-08-07 12:50:32
【问题描述】:
我正在通过 Reporting Services 进行报告。我的一个文本框有一个表达式,它接收一个参数,该参数基本上是一个包含日期的字符串,例如“20110410”,我需要将此字符串转换为日期,添加 / 并将日期放在首位,月,年。
这已经完成了。但问题是我需要在低于 10 的日期和月份之后添加一个 0,所以我想要 01/04/2011 而不是 2011 年 1 月 4 日。
我不知道如何使用标签代码,如果代码显示不正确,请提前抱歉。
=IIF(Parameters!Uperiodo.Value = "Día",
IIF(Day(FormatDateTime(
CDate(mid(Parameters!Desde.Value,5,2) & "/" & mid(Parameters!Desde.Value,1,4) & "/" & mid(Parameters!Desde.Value,7,2)),DateFormat.ShortDate))<10,
"0"+Day(FormatDateTime(
CDate(mid(Parameters!Desde.Value,5,2) & "/" & mid(Parameters!Desde.Value,1,4) & "/" & mid(Parameters!Desde.Value,7,2)),DateFormat.ShortDate)),
(Day(FormatDateTime(
CDate(mid(Parameters!Desde.Value,5,2) & "/" & mid(Parameters!Desde.Value,1,4) & "/" & mid(Parameters!Desde.Value,7,2)),DateFormat.ShortDate))))
& "/" &
Month(FormatDateTime(
CDate(mid(Parameters!Desde.Value,5,2) & "/" & mid(Parameters!Desde.Value,1,4) & "/" & mid(Parameters!Desde.Value,7,2)),DateFormat.ShortDate))
& "/" &
Year(FormatDateTime(
CDate(mid(Parameters!Desde.Value,5,2) & "/" & mid(Parameters!Desde.Value,1,4) & "/" & mid(Parameters!Desde.Value,7,2)),DateFormat.ShortDate))
,
Month(FormatDateTime(
CDate(mid(Parameters!Desde.Value,5,2) & "/" & mid(Parameters!Desde.Value,1,4) & "/" & mid(Parameters!Desde.Value,7,2)),DateFormat.ShortDate))
& "/" &
Year(FormatDateTime(
CDate(mid(Parameters!Desde.Value,5,2) & "/" & mid(Parameters!Desde.Value,1,4) & "/" & mid(Parameters!Desde.Value,7,2)),DateFormat.ShortDate))
)
谢谢!
编辑:对不起,我没有解释我们为什么这样做。我们需要这样做,因为需要下载报告的服务器具有英文格式(mm/dd/yyyy)。
最好的问候,
【问题讨论】:
-
DateTime.Parse 方法 - msdn.microsoft.com/en-us/library/…
-
这是 VB.NET 代码吗?
-
将字符串解析为
DateTime变量 (DateTime.Parse) 只需使用正确的格式字符串myDt.ToString("hh/mm/yyyy")不需要所有可怕的 Mid 和 CDate 代码...尽管为什么是 @ 987654326@函数没有大写?那是你真正的 VB 代码吗? -
使用 Reporting Services Format 函数,所以这一切都归结为一个简单的 =Format(Parameters!Desde.Value,"dd/MM/yy") 但请确保您的参数之前定义为 DateTime你这样做。
标签: asp.net reporting-services