从数据库读取时保留SQL DateTime格式

时间:2010-01-19 18:33:11

标签: c# sql-server

我有一个非常简单的工具,它从数据库运行存储过程,将结果放入DataTable,然后通过Response将DataTable写入文件。目的是从SQL Server上的表中获取数据,然后使用第三方工具将其上载到Oracle数据库。

我遇到的问题是日期存储在SQL Server中,如下所示:2011-05-01 00:00:00.000。

但是,当我通过我的SqlDataReader访问它并将其放入我的DataTable时,它最终格式化为:5/1/2011 12:00:00 AM。

所以我想我可以将它显式解析为OracleDateTime。我的DataTable中有以下列:

records.Columns.Add("Date", typeof(OracleDateTime));

以及我正在阅读结果的那一点:

row["Date"] = OracleDateTime.Parse(rdr["Date"].ToString());

我也尝试过SqlDateTime,但最终,我最终得到了格式错误的字符串。我只是希望它保持与SQL在查询中返回它的方式相同 - 如何做到这一点?

1 个答案:

答案 0 :(得分:3)

日期不会以这种方式存储在SQL服务器中;您在ad-hoc查询中看到的是从内部数字存储到该格式的转换。

当您阅读它时,您应该将rdr [“Date”]转换为DateTime。

如果您想在代码中使用该特定格式,则应在输出时使用.NET格式化程序对其进行格式化。