我有一个非常简单的工具,它从数据库运行存储过程,将结果放入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在查询中返回它的方式相同 - 如何做到这一点?
答案 0 :(得分:3)
日期不会以这种方式存储在SQL服务器中;您在ad-hoc查询中看到的是从内部数字存储到该格式的转换。
当您阅读它时,您应该将rdr [“Date”]转换为DateTime。
如果您想在代码中使用该特定格式,则应在输出时使用.NET格式化程序对其进行格式化。