我想从我的数据库中获取记录,这是在ms访问中创建的2013年6月3日。日期都存储在DD/MM/YYYY的格式,下面是我的查询访问mdb日期/时间问题
AND (a.Date = #" + date + "#)) order by e.E_ID asc
但令人惊奇的是我已经插在的2013年3月6日日的记录是今天的日期,而需要它作为2013年3月6日,我纠正了我的区域设置,仍然是同样的问题。同样在我的查询中,我正在查询匹配日期,我正在使用dd/MM/yyyy。这是微软的错误吗?请帮助
我想从我的数据库中获取记录,这是在ms访问中创建的2013年6月3日。日期都存储在DD/MM/YYYY的格式,下面是我的查询访问mdb日期/时间问题
AND (a.Date = #" + date + "#)) order by e.E_ID asc
但令人惊奇的是我已经插在的2013年3月6日日的记录是今天的日期,而需要它作为2013年3月6日,我纠正了我的区域设置,仍然是同样的问题。同样在我的查询中,我正在查询匹配日期,我正在使用dd/MM/yyyy。这是微软的错误吗?请帮助
日期都存储在DD/MM/YYYY
的,我怀疑他们是不是格式。我怀疑它们以某种本地日期/时间格式存储,无疑比10个字符的字符串更有效。 (例如,假设您使用的是适当的字段类型而不是varchar)。区分数据的固有特性和“转换为文本时的显示方式”很重要。
但令人惊奇的
我不认为这是惊人的。我认为这是不必要地使用字符串转换的完美结果。他们几乎总是咬你。你不是想表示一个字符串 - 你想表示一个日期。所以尽可能使用这种类型。
您应该:
DateTime
,从而避免了串转换哪个供应商类型,你正在使用您还没有指定 - 我的猜测是OleDbConnection
等等。通常,如果您查看相关命令类的Parameters
属性的文档,您会发现一个合适的示例。例如,OleDbCommand.Parameters
显示OleDbConnection
上的参数化查询。有一两件事值得的文档指出:
的OLE DB .NET提供程序不支持命名参数,将参数传递到SQL语句或由
OleDbCommand
调用时CommandType
设置为Text
存储过程。在这种情况下,必须使用问号(?
)占位符。 [...] 因此,将OleDbParameter
对象添加到OleDbParameterCollection
的顺序必须直接对应于命令文本中参数的问号占位符的位置。
毫无疑问,我得到的最佳答案.... – greatmajestics