Mysql 如何在sql查询中比较日期?

Mysql 如何在sql查询中比较日期?,mysql,sql,date,Mysql,Sql,Date,我正在编写一个函数,它可以为我提供特定月份和年份的所有匹配项。 我将月数和年值传递给该函数,它应该使用以下查询来获得结果: SELECT tahminler.match_id, tahminler.tahmin_text,matches_of_comments.match_id FROM tahminler INNER JOIN matches_of_comments ON tahminler.match_id = matches_of_comments.match_id WHERE ( mat

我正在编写一个函数,它可以为我提供特定月份和年份的所有匹配项。 我将月数和年值传递给该函数,它应该使用以下查询来获得结果:

SELECT tahminler.match_id, tahminler.tahmin_text,matches_of_comments.match_id
FROM tahminler
INNER JOIN matches_of_comments ON tahminler.match_id = matches_of_comments.match_id
WHERE (
matches_of_comments.match_date =  'I DO NOT KNOW WHAT TO WRITE HERE'
)
AND tahminler.user_id =12

问题是
matches\u of \u comments。match\u date
类型是varchar,我将月份和年份的值作为数字传递,以生成一个类似
11.2013
的表单,我如何比较我传递给varchar date的表单??我可以将类型转换为日期吗??如果我能做到这一点,如何比较部分日期(仅月份和年份)??

请尝试先将此项转换为日期,然后比较月份和年份,注意将日期存储为varchar是不好的做法

SELECT tahminler.match_id, tahminler.tahmin_text,matches_of_comments.match_id
FROM tahminler
INNER JOIN matches_of_comments ON tahminler.match_id = matches_of_comments.match_id
WHERE (

MONTH(STR_TO_DATE(matches_of_comments.match_date , '%m/%d/%Y'))=  '07'//month variable
 AND YEAR(STR_TO_DATE(matches_of_comments.match_date , '%m/%d/%Y'))=  '2013'//year variable
)
AND tahminler.user_id =12

将字符串转换为日期时间数据类型。 要以所需的任何格式进行比较,可以重新格式化:

DATE_FORMAT(STR_TO_DATE('11.2013', '%m.%Y'), '%Y-%m-%d')

那么,日期的格式是什么?无论如何,它应该被存储为一个实际的日期。。。
DATE_FORMAT(STR_TO_DATE('11.2013', '%m.%Y'), '%Y-%m-%d')