日期存储格式为 dd/MM/yyyy
我怀疑他们不是。我怀疑它们是以某种本地日期/时间格式存储的,这无疑比 10 个字符串更有效。(例如,我假设您使用的是适当的字段类型而不是 varchar。)区分数据的固有性质和“转换为文本时如何显示”很重要。
但令人惊奇的是
我不认为这很神奇。我认为这是不必要地使用字符串转换的自然结果。他们最后几乎总是咬你。您不是在尝试表示字符串 - 您是在尝试表示日期。因此,尽可能使用该类型。
你应该:
- 出于多种原因使用参数化 SQL 进行查询 - 最重要的是避免 SQL 注入攻击,同时也避免这种不必要的字符串转换
- 将参数值指定为 a
DateTime
,从而避免字符串转换
您还没有指定您使用的提供程序类型 - 我的猜测是OleDbConnection
等等。通常,如果您查看Parameters
相关命令类的属性的文档,您会找到一个合适的示例。例如,OleDbCommand.Parameters
显示对OleDbConnection
. 文档中值得注意的一件事:
OLE DB .NET 提供程序不支持将参数传递给 SQL 语句或由OleDbCommand
whenCommandType
设置为调用的存储过程的命名参数Text
。?
在这种情况下,必须使用问号 ( ) 占位符。OleDbParameter
[...] 因此,添加对象的顺序OleDbParameterCollection
必须直接对应于命令文本中参数的问号占位符的位置。