簡體   English   中英

如何在SQL查詢中比較日期?

[英]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(str,format)

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM