记录到时间跨度

时间:2013-12-30 13:58:22

标签: c# sql-server-2012 adodb

我有一个表有一个名为Shift_Start_Time的时间(7)类型字段

创建记录集RST后。

我希望将其保持在一个时间范围内

TimeSpan  TT;
TT = RST.Fields("Shift_Start_Time").Value;

或 将其保持为毫秒为整数

int int1;

int1 = RST.Fields("Shift_Start_Time").Value;

我该怎么做?我接受它的每一步都会给出similer错误。 例如:

Convert.ToInt64(RST.Fields("Shift_Start_Time").Value);

"Unable to cast object of type 'System.Byte[]' to type 'System.IConvertible'."

1 个答案:

答案 0 :(得分:0)

您必须将其用作Int64DateTimeOffset。代码可能如下所示:

var bytes = RST.Fields("Shift_Start_Time").Value as byte[];
var intVal = BitConverter.ToInt64(bytes, 0);
var dtOffset = new DateTimeOffset(intVal, new TimeSpan(-5, 0, 0));

在此示例中,我在-5中使用EST的静态TimeSpan偏移量。 See this article了解更多细节。