检索数据类型为time的时间值(1)

时间:2015-12-03 06:31:18

标签: c# datetime sql-server-2008-r2 timespan

在我的一个Windows应用程序中,我正在使用SQL Server 2008 R2。哪个列的数据类型为time(1)

我在该列中有一个虚拟值,可以说09:00:00格式为HH:mm:ss

现在,当我在代码中检索相同的值并将其存储到网格中时。我使用以下代码。

VSFlexShift.set_TextMatrix(i, 2, objShiftMasterDTO.SHIFT_START.ToString("HH:mm:ss"));

但是我收到了错误

  

输入字符串的格式不正确

当我存储ex:

的日期值时
Column: date 
datatype: DateTime 
Value: 2015-11-30 15:05:01.120

当我尝试在代码

中检索它时
 VSFlexHoliday.set_TextMatrix(i, 3, objHolidayMasterDTO.HOLIDAY_DATE.ToString("dd/MM/yyyy"));

返回:30/11/2015

现在我需要先得到我提到的时间格式9:00:00。怎么弄?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

自CLR方time mapped with TimeSpan起,TimeSpan格式与<{1}}格式的位不同。

来自自定义TimeSpan格式字符串;

  

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

这就是为什么您需要将:用于分隔符并需要使用hh specifier,因为\:没有TimeSpan说明符作为自定义说明符。

HH

VSFlexShift.set_TextMatrix(i, 2, objShiftMasterDTO.SHIFT_START.ToString("hh\\:mm\\:ss"));

进一步阅读: