如何在datagridview控件c#中更改SQL Server时间(7)格式(hh:mm tt)

时间:2017-04-08 06:02:27

标签: c# sql-server winforms datetime datagridview

我查了这个链接 Format SQL Server 2012 Time(7) to "HH:mm"

但我想更改C#中的格式。

喜欢这个

dgvRoster.Columns[1].DefaultCellStyle = new DataGridViewCellStyle { Format = "hh:mm tt" };

这行代码适用于SQL Server的datetime数据类型。

我尝试将数据类型DateTime更改为time(7)time(0),但会在这些代码行中导致THIS EXCEPTION

2 个答案:

答案 0 :(得分:0)

Stack Overflow Answer to a similar case in MySQL

  

.NET接受TIME数据类型为System.TimeSpan而不是System.DateTime。

     

在这里,您尝试分配自定义DateTime格式,这就是您获得的原因   错误为"输入字符串的格式不正确"。

     

您需要指定自定义TimeSpan格式,例如

     

dataGridView1.Columns 1。DefaultCellStyle.Format = @" hh:mm";

     

选中此链接以了解有关自定义TimeSpan格式的更多信息

     

https://msdn.microsoft.com/en-us/library/ee372287(v=vs.110).aspx

     

默认情况下,TimeSpan不支持12小时时间格式。

     

您需要将TimeSpan转换为DateTime对象并指定任何自定义   您可以根据需要使用DateTime格式。

答案 1 :(得分:0)

来自MSDN

  

自定义TimeSpan格式说明符不包括占位符分隔符符号,例如将小时数与小时数,小时数与分数小时数或秒数与小数秒数分隔开的符号。相反,这些符号必须作为字符串文字包含在自定义格式字符串中。例如,“dd.hh:mm”将句点(。)定义为天和小时之间的分隔符,并将冒号(:)定义为小时和分钟之间的分隔符。

您必须使用\\:代替:

第二个问题是tt

不支持的TimeSpan

因此,要么将数据类型保持为DateTime,要么将格式更改为Format = @"hh\:mm"