2012-08-07 62 views
0

我有數據類型Time(例如:08:00:00.0000000)數據庫列顯示時間變量作爲AM/PM

我讀程序中的值,並將其移動到聲明爲低於可變

public string vartime{get;set;} 

在程序中讀取數據時,它有價值。

((TimeSpan)(dr["dates"])).ToString() "08:00:00" string 

我需要在網格中顯示這個值爲08:00 am。此外,值16:00:00.0000000應顯示爲04:00 pm

在給予vartime=((TimeSpan)(dr["dates"])).ToString("hh:mm tt")時,由於輸入格式不正確,它給了我一個錯誤。

請讓我知道如何格式化時間變量以顯示am/pm。

+0

看到這個線程: http://stackoverflow.com/questions/6724040/how-to-convert-timespan-to-pm-or-am-time – 2012-08-07 07:44:11

回答

0

在SQL Server中,你可以這樣做:

declare @time datetime='16:00:00'; 
    SELECT substring(convert(varchar(20), @time, 9), 13, 5) 
     + ' ' + substring(convert(varchar(30), @time, 9), 25, 2) 

結果

4:00 PM 
+0

感謝answers.I試圖相似上面給出的鏈接,但我得到的錯誤是'輸入字符串格式不正確'。是因爲數據類型是'Timespan'? – Soumya 2012-08-07 08:26:23

+0

@Soumya:是的,數據類型應該是日期時間的上述功能工作 – 2012-08-07 08:36:35

+0

因此,這條線是錯誤的,因爲datatyp是時間跨度?vartime =((TimeSpan)(dr [「dates」]))。ToString(「hh:毫米噸「) – Soumya 2012-08-07 09:31:08

0

您可以通過添加時間跨度爲datetime喜歡做,

TimeSpan timespan = new TimeSpan(03,00,00); 
    DateTime time = DateTime.Today.Add(timespan); 
    string displayTime = time.ToString("hh:mm tt"); 

,而不是03, 00,00您可以直接傳遞您的時間跨度變量