如何比较数据库中存储为 String(varchar) 的日期?

use*_*_vs 4 mysql sql sql-server oracle

我有一个数据库(表),其中两个字段是:

fromdate varchar(20)
todate  varchar(20)
Run Code Online (Sandbox Code Playgroud)

日期以这种方式存储:

YYYY-MM-DD HH:mm:ss
Run Code Online (Sandbox Code Playgroud)

例如:数据库中的“2014-10-30 10:10:10”。

现在我想比较两个日期并使用查询从数据库中获取记录,2014-09-10 10:10:10( fromdate) 到 2014-10-10 10:10:10( todate)

如何获取所有准确的记录..有什么解决方案吗..

谢谢。

Hor*_*iux 5

只需比较字符串,无需额外开销。

此格式“YYYY-MM-DD HH:mm:ss”共享时间顺序和字面字母顺序

SELECT * FROM someTable
WHERE fromdate >= '2014-09-10 10:10:10' AND todate <= '2014-10-10 10:10:10'
Run Code Online (Sandbox Code Playgroud)

另外,我会在这些列上创建索引。