【发布时间】:2017-01-24 09:49:46
【问题描述】:
我想以dd/MM/yyyy 格式将日期插入数据库。为此,我写了如下:
drExpInfo[0]["CHEQUE_DT"] = string.IsNullOrWhiteSpace(e.Record["CHEQUE_DT"].ToString())
? DBNull.Value : (object)Convert.ToDateTime(e.Record["CHEQUE_DT"]);
它在我的本地机器上运行良好,但在我的服务器上它采用dd/MM/yyyy hh:mm:ss 格式。那么如何在那里设置相同的格式。请建议。
【问题讨论】:
-
您使用的是什么 DBMS? db中的
CHEQUE_DT是什么类型? -
@M.Wiśnicki:我正在使用
Oracle,抱歉忘记标记了。cheque_dt是日期数据类型 -
不要将日期存储为具有格式的字符串。将它们存储在数据库中的适当数据类型中(例如
datetime)。此类类型没有 格式。 -
@Damien_The_Unbeliever;谢谢你的建议。我在数据库中使用
date。我只想在我的代码中进行自定义。这里怎么处理 -
因此,在输入日期后立即将其解析为 .NET
DateTime。然后,在将其发送到数据库时使用参数(并依靠 ADO.Net 和 ODP 执行到 Oracle 的date的适当转换)并将其从数据库中检索回DateTime并且,只有在将其实际显示给用户时,您才应将其转换回字符串。此时,您可以选择您喜欢的任何格式 - 但当您不需要需要一个导致格式错误的字符串时,它会将其(不恰当地)转换为字符串。