将 Oracle 日期转换为 c# DateTime

Boj*_*jan 5 c# datetime date

我正在尝试从日期类型的 oracle 数据库中读取记录,然后将其转换为 ASP.NET c# DateTime 对象。问题是,它选择日期而不是时间。我正在使用的命令是:

DateTime dt = Convert.ToDateTime(ds.Tables[0].Rows[0][0].ToString());
Run Code Online (Sandbox Code Playgroud)

如果我尝试打印,ds.Tables[0].Rows[0][0].ToString()它也会显示时间。有谁知道如何解决这个问题?

我的 oracle 日期字段的值/格式为:2013-01-01 14:14:14

Maa*_*ark 5

其他人都把它复杂化了。

Oracle Managed Data Access(我假设您正在使用)将日期作为“OracleDate”类型返回。OracleDate 有一个属性“Value”,它是 ac# DateTime。

就我而言,要从输出参数(下面的 p2)获取 DateTime,我使用了

return ((OracleDate) p2.Value).Value;
Run Code Online (Sandbox Code Playgroud)

对于 Op 的情况,其中有问题的日期在返回数据集的一行中,请使用

DateTime dt = (DateTime) ds.Tables[0].Rows[0][0];
Run Code Online (Sandbox Code Playgroud)

编辑:如果从 DataRow 获取数据,由于某种原因,日期实际上是 ac# DateTime


Ale*_*nik 2

这:

DateTime dateTime = DateTime.ParseExact(ds.Tables[0].Rows[0][0].ToString(), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

使用指定的格式进行解析,并且不依赖于线程区域性。