更改日期格式

xbo*_*nez 1 c# sql oracle datetime

我有一个DateTime变量(比如,timestamp),它以通常的格式保存日期,如下所示:

11/1/2011
Run Code Online (Sandbox Code Playgroud)

此变量用于构建SQL命令.Oracle数据库仅接受格式的日期

YYYY-MM-DD
Run Code Online (Sandbox Code Playgroud)

如何操作变量以此格式存储日期?

Jon*_*eet 8

不要格式化日期以将其包含在SQL中.

使用参数化查询,然后只包括该值作为参数.这样你根本不需要任何格式化.

您应该对所有数据使用参数化查询- 除格式化外,它还可以保护您免受SQL注入攻击.

获取适用于您正在使用的特定Oracle安装的日期/时间格式不是正确的修复方法.做得恰当:避免在代码中包含数据(SQL).


另一方面,你的问题是从一开始就做出错误的假设.甲DateTime变量不处于"通常格式"在所有保持值,任何一个多int持有十进制表示或数字的十六进制表示.DateTime内部根本不存储文本 - 它存储了许多刻度.你打电话时的格式ToString取决于各种文化方面.值得将类型表示的基本值的概念与您可能通过调用获得的格式化字符串表示分开ToString.