【发布时间】:2014-12-26 11:39:49
【问题描述】:
我有一个数据库(表),其中 2 个字段是:
fromdate varchar(20)
todate varchar(20)
日期以这种方式存储:
YYYY-MM-DD HH:mm:ss
例如:数据库中的“2014-10-30 10:10:10”。
现在我想比较两个日期并使用查询从数据库中获取记录,2014-09-10 10:10:10(fromdate) 到 2014-10-10 10:10:10(todate)
如何获取所有准确的记录.. 有什么解决方案吗..
谢谢。
【问题讨论】:
-
为什么
datetimes 被存储为varchar? -
它的旧数据库!所有日期都存储在 varchar 中..我们必须在不更改数据库结构的情况下迁移应用程序..
-
您必须先决定 - 如果您的数据库是 MySql、SqlServer 还是 Oracle。为什么它们都在标签中?
-
OTOH,它们存储方式的优势(yyyy downto ss)是这些时间戳的字母顺序 === 时间顺序,因此您应该能够测试字符串并获得相同的结果你会的,就像日期一样。
-
DATE永远不会以任何格式存储。这是我们人类需要理解的。 Oracle 存储DATE总共7 bytes。其中的每个字节都存储 DATE 元素的值。阅读我的答案。
标签: mysql sql sql-server oracle