[英]How to compare dates in sql query?
我正在編寫一個函數,可以帶給我特定月份和年份的所有匹配項。 我將月份號和年份值傳遞給該函數,它應該使用以下查詢來獲取結果:
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日期的這種形式? 我可以將類型轉換為日期嗎? 如果我能做到的話,如何比較部分日期(僅月份和年份)?
首先嘗試將此日期轉換為日期,然后比較月份和年份,請注意將日期存儲為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('11.2013', '%m.%Y')
將字符串轉換為日期時間數據類型。 要以任何格式進行比較,可以重新格式化:
DATE_FORMAT(STR_TO_DATE('11.2013', '%m.%Y'), '%Y-%m-%d')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.