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

本文关键字:时间 检索 数据类型 | 更新日期: 2023-09-27 18:25:23

在我的一个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)的时间值

由于time与CLR端的TimeSpan映射,TimeSpan格式与DateTime格式相差位。

来自自定义时间跨度格式字符串;

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

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

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

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

进一步阅读:

  • 自定义时间跨度格式字符串
  • 自定义日期和时间格式字符串