2010-10-02 82 views
3

我在我的報告中有一個表格,其中有數據類型爲Time(7)的列。在Reporting Services 2008中顯示時間

現在我已經在Reporting Services的2008年

如果我設置的表達,HH的格式正確格式化他們的問題:毫米它仍然顯示11:12:000

我只想得到小時和分鐘!像11:12

它看起來像RS不知道格式。以下都不起作用:

=Hour(Fields!MyTime.Value) 

=CDate(Fields!MyTime.Value) 

兩者都拋出錯誤。我認爲它可以將它格式化爲純文本格式嗎?

感謝您的幫助

編輯:

我使用SQL Server 2008 R2 Express作爲數據庫。 (所以我在報告中包括的數據源,因爲報告服務的SQL Server Express不允許使用共享數據源。)

解決方案(感謝馬克·班尼斯特):

=Today() + Fields!MyTime.Value 

然後你可以使用用於日期時間值的通用格式!

+0

什麼數據源(SQL /等,SQL方言,版本等)你在用嗎? – 2010-10-04 09:55:33

回答

3

嘗試在您的查詢中用cast(MyTime as datetime) as MyTime代替MyTime,並將表達式的格式設置爲HH:mm

+0

如果我對這些時間值什麼都不做,那就解決了這個問題。但是,當我做了這些值的加法或者減法2時,我仍然得到了錯誤的格式,因爲數學和日期返回了一個時間段,我猜...但是使用CDATE(mytime1 + mytime2)進行轉換不起作用。 – SwissCoder 2010-10-05 09:37:37

+0

mytime1 + mytime2不應該是一個有效的表達式,因爲它們都是時間值 - 我無法弄清楚你試圖用這個表達式實現什麼。mytime1-mytime2會給你一個時間間隔作爲兩者之間的差異,除了我不認爲SQLServer允許這種日期時間算術 - 你將不得不使用datediff。我建議在SQLServer中使用現有的日期/時間函數,如datepart和datediff。 – 2010-10-05 09:54:19

+0

你錯過了我。我在報告中刪除過多日期的減法!我想添加time1 + time2並獲取總時間並將其顯示在報告中。不知怎的,這應該是可能的! – SwissCoder 2010-10-05 13:07:56

1

嘗試使用FORMAT()函數包裝表達式。例如:

您有一個文本框或一個包含時間值的數據網格/矩陣。編輯表達式:

format((time1 -time2) + (time3 - time4) , "HH:mm") 

我經常用這個與Datetime顯示它時,「切斷」的時間。

format(dateVal,"MM/dd/yyyy") 

將顯示

10/05/2010 

這裏是它一些更多的信息可以幫幫忙:

http://msdn.microsoft.com/en-us/library/59bz1f0h(v=VS.90).aspx

+0

嗨斯科特,謝謝。但是這不起作用......我認爲在我從另一個日期時間減去一個日期時間之後,我得到了一個時間跨度或時間偏移...並且以某種方式在嘗試將其格式化爲HH時發生錯誤:mm – SwissCoder 2010-10-06 07:58:43

相關問題