将时间变量显示为上午/下午

时间:2012-08-07 07:37:55

标签: asp.net sql-server-2008 c#-4.0

我的数据库列的数据类型为Time(例如:08:00:00.0000000

我正在读取程序中的值并将其移动到声明如下的变量

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")时,由于输入格式不正确,它会给我一个错误。

请告诉我如何格式化Time变量以显示am / pm。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以通过将时间跨度添加到日期时间来完成,例如,

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

而不是03,00,00,您可以直接传递您的时间跨度变量