我的数据库列的数据类型为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。
答案 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,您可以直接传递您的时间跨度变量