3 回答

TA貢獻1951條經(jīng)驗 獲得超3個贊
您需要DATE_FORMAT在SELECT子句而不是WHERE子句中應用:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y')
FROM mytable
WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
另請注意,該查詢CURDATE()僅返回DATE日期的一部分,因此,如果您將create_date“ a” 存儲為DATETIME時間部分,則此查詢將不會選擇今天的記錄。
在這種情況下,您需要使用NOW:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y')
FROM mytable
WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()

TA貢獻1856條經(jīng)驗 獲得超5個贊
SELECT
*
FROM
< table_name >
WHERE
< date_field > BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY)
AND NOW();

TA貢獻1816條經(jīng)驗 獲得超6個贊
DATE_FORMAT返回一個字符串,因此您在BETWEEN子句中使用了兩個字符串,該字符串無法按預期工作。
而是將日期轉換為格式,SELECT然后BETWEEN對實際日期執(zhí)行。例如,
SELECT DATE_FORMAT(create_date, '%m/%d/%y') as create_date_formatted
FROM table
WHERE create_date BETWEEN (CURDATE() - INTERVAL 30 DAY) AND CURDATE()
添加回答
舉報