我有一个SQL数据库,我有一个字段,其中包含01/31/2014
之类的日期,并且它是varchar类型。即使我有权访问这个数据库,改变结构现在已经不受限制了。
有没有办法检查Javascript中的字符串日期是否在数据库中我的varchar类型日期之间?
我得到的错误是,当我选择搜索(例如08/31/2013
和12/31/2013
)之间的日期时,它会产生正确的查询结果,但是当我搜索之间的日期时(例如{{ 1}}和08/31/2013
)我的任务中找不到任何结果,即使有。
我认为此错误与日期列的结构不是01/01/2014
有关。这是真的,我怎样才能克服我的问题?
答案 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关键字进行比较。
我建议您以毫秒格式存储日期。它将减少混乱和麻烦,并且它也是许多编码语言的标准。它还可以使比较和转换日期变得更加容易。