我正在尝试从日期类型的 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
其他人都把它复杂化了。
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
这:
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)
使用指定的格式进行解析,并且不依赖于线程区域性。
| 归档时间: |
|
| 查看次数: |
24589 次 |
| 最近记录: |