Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 使用C时丢失DateTimeOffset精度#_Sql Server 2008_Datetimeoffset - Fatal编程技术网

Sql server 2008 使用C时丢失DateTimeOffset精度#

Sql server 2008 使用C时丢失DateTimeOffset精度#,sql-server-2008,datetimeoffset,Sql Server 2008,Datetimeoffset,我有一个SQL Server表,其CreatedDate字段的类型为DateTimeOffset(2)。 表中的样本值为2010-03-01 15:18:58.57-05:00 例如,我从C#中检索该值,如下所示: var cmd = new SqlCommand("SELECT CreatedDate FROM Entities WHERE EntityID = 2", cn); var da = new SqlDataAdapter(cmd); DataTable dt =new D

我有一个SQL Server表,其CreatedDate字段的类型为DateTimeOffset(2)。
表中的样本值为2010-03-01 15:18:58.57-05:00

例如,我从C#中检索该值,如下所示:

var cmd = new SqlCommand("SELECT CreatedDate FROM Entities WHERE EntityID = 2", cn);  
var da = new SqlDataAdapter(cmd);  
DataTable dt =new DataTable();  
da.Fill(dt);
我看看这个值:
Show(dt.Rows[0][0].ToString())

结果是2010-03-01 15:18:58-05:00,它缺少存储在数据库中的.57

如果我在Watch窗口中查看dt.Rows[0][0],我也看不到.57,因此它似乎被截断了

有人能解释一下吗?我需要使用日期来匹配数据库中的其他记录,并且需要.57

谢谢

DarvisSQL Server没有毫秒精度

下面有一篇文章详细介绍了以下内容:

编辑

我猜C#不应该表现出同样的行为。请记住,
DateTime.ToString()
方法不包括毫秒,除非指定格式提供程序


“监视”窗口还将显示
ToString()
。尝试设置断点并使用Inspector获取存储的更详细信息,然后查看是否存在毫秒。

Fill应更改数据集中的数据以匹配数据源中的数据--您是否尝试过任何其他方法来检索数据,以查看其他类是否以您希望的格式检索数据对于简单的测试,如sqldatasource/gridview等

感谢您提供的信息。这个链接很有用。什么是Inspector?它只是在点击断点并查看其值后将鼠标移到变量上的能力。“SQL Server没有毫秒精度。”真的吗?OP特别指出,他使用的是datetimeoffset列类型,它的精度可以低至100纳秒Justin,断开的链接,你知道引用被重新定位到哪里了吗?@r2evans我猜应该这样做。