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')