MySQL检查Varchar日期是否在字符串日期之间

时间:2014-06-19 15:19:22

标签: mysql

我有一个SQL数据库,我有一个字段,其中包含01/31/2014之类的日期,并且它是varchar类型。即使我有权访问这个数据库,改变结构现在已经不受限制了。

有没有办法检查Javascript中的字符串日期是否在数据库中我的varchar类型日期之间?

我得到的错误是,当我选择搜索(例如08/31/201312/31/2013)之间的日期时,它会产生正确的查询结果,但是当我搜索之间的日期时(例如{{ 1}}和08/31/2013)我的任务中找不到任何结果,即使有。

我认为此错误与日期列的结构不是01/01/2014有关。这是真的,我怎样才能克服我的问题?

2 个答案:

答案 0 :(得分:1)

WHERE STR_TO_DATE(column,'%m/%d/%Y') 
BETWEEN STR_TO_DATE(column,'%m/%d/%Y')
AND STR_TO_DATE(column,'%m/%/d%Y')

需要将'%m/%/d/%Y'更改为'%m/%d/%Y'

答案 1 :(得分:0)

您正在寻找的SQL我相信:

WHERE STR_TO_DATE(column, '%m/%/d/%Y') 
BETWEEN STR_TO_DATE(column, '%m/%/d/%Y')
AND STR_TO_DATE(column, '%m/%/d/%Y')

MySQL有一个STR_TO_DATE函数,您可以使用该函数将字符串解析为MySQL中的日期对象。然后您可以使用between关键字进行比较。

我建议您以毫秒格式存储日期。它将减少混乱和麻烦,并且它也是许多编码语言的标准。它还可以使比较和转换日期变得更加容易。