0

特定の月と年のすべての試合を表示する関数を作成しています。その関数に月番号と年の値を渡すと、次のクエリを使用して結果を取得する必要があります。

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_of_comments.match_date型が varchar であり、月と年の値を数値として11.2013渡して、渡したこのフォームを varchar 日付と比較する方法のようなフォームを作成することです?? タイプを日付に変換できますか?? そして、私がそれを行うことができれば、日付の一部(月と年だけ)を比較する方法は??

4

2 に答える 2

0
STR_TO_DATE('11.2013', '%m.%Y')

文字列を日時データ型に変換します。必要な任意の形式で比較するには、再形式化できます。

DATE_FORMAT(STR_TO_DATE('11.2013', '%m.%Y'), '%Y-%m-%d')
于 2013-11-02T10:37:51.227 に答える
0

最初にこれを日付に変換してから、月と年を比較してみてください。日付を 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

STR_TO_DATE(文字列,フォーマット)

于 2013-11-02T10:21:31.330 に答える