2012-09-05 169 views
1

我想根據通用「2012-09-04 10:20:12 AM」格式格式化當前日期,但不知何故「AM」部分總是缺失。使用SQL Report Server格式化日期

我使用表達式"..." & Format(CDate(Now), "yyyy-MM-dd hh:mm:ss tt")來格式化日期並將其附加到某些文本。這會發出下面重現的警告,但會正確打印日期(AM/PM指示符除外)。

 
[rsRuntimeErrorInExpression] The Value expression for the textrun 
‘EmissionDate.Paragraphs[0].TextRuns[0]’ contains an error: Input string 
was not in a correct format. 

我在做什麼錯在這裏?

注意:我知道this SO post和SQL Server查詢支持的解決方案,但我想盡可能使用內置函數。

+0

現在,我認爲它可能與報告的文化和服務器區域設置有關,但我還沒有弄清楚什麼。區域設置具有正確定義的am/pm指示符,因此它必須符合報告的文化。儘管如此,仍然不知道導致警告信息的原因。 – lsoliveira

回答

0

按我以前的評論,報告的Language財產被引用文化對於沒有AM/PM指示被定義。按照預期將其更改爲en-US提供了AM/PM指示符。

2

我發現這篇文章,也許它可以解決您的問題。我知道你已經在使用Format(CDate),但由於你使用的是(Now),巫婆是一個日期時間變量,也許你應該使用FormatDateTime()而不是Format()

試試這個還有: 相反的:Format(CDate(Now), "yyyy-MM-dd hh:mm:ss tt") 用途:Format(CDate(Now), "yyyy-MM-dd hh:mm:ss am/pm")

鏈接:Working with Dates in Reporting Services

+0

'FormatDateTime'只接受一組固定的格式,其中沒有一個對我來說很有趣。 – lsoliveira

+0

我添加了更多信息嘗試使用am/pm而不是tt。對不起,如果它不工作,我會先測試它,但現在我不能在我的環境中。 – Turque

+0

我已經測試過,它也沒有工作。結果就像'ax/px',其中'x'是[0-9]範圍內的一個隨機數(不知道爲什麼)。儘管如此,感謝您的嘗試。 – lsoliveira