mySQL - 是否可以在字符串上使用BETWEEN子句并使其表现为日期?

时间:2015-03-04 11:43:38

标签: php mysql

我正在尝试根据开始日期和结束日期从数据库中进行选择。我无法更改字段类型,因此我必须使用字符串值进行更新。

即使匹配结果匹配,查询也不会返回结果:

FieldName:date(string)

FieldValue:03.03.2015(字符串)

SELECT * FROM `submission_values` WHERE `FieldName` = 'date' AND `FieldValue` BETWEEN '01.01.2015' AND '01.01.2016'

怎么办?

1 个答案:

答案 0 :(得分:2)

您必须使用SELECT STR_TO_DATE();将字符串转换为日期。

SELECT * FROM `submission_values` WHERE `FieldName` = 'date' AND str_to_date(`FieldValue`, '%d.%m.%Y') BETWEEN str_to_date('01.01.2015', '%d.%m.%Y') AND str_to_date('01.01.2016','%d.%m.%Y')