我试图只显示“DateDue”在去年的记录。问题是我的日期是 Varchar(10) 的格式,这是因为我的数据按供应商的时间间隔进入我的数据库。显然,使用此查询未正确过滤日期。是否可以将其(暂时用于比较日期范围)转换为用于查询的正确日期数据类型,但不能永久更改该列的类型?
SELECT `DocNum`, `DateDue`
FROM `prod_po_list`
WHERE `DateDue` BETWEEN (DATE_FORMAT(curdate( ) - INTERVAL 365 DAY , '%m/%d/%Y' ))
AND DATE_FORMAT( CURDATE( ) , '%m/%d/%Y' )
最佳答案
你在找这样的东西吗?
SELECT DocNum, DateDue
FROM prod_po_list
WHERE STR_TO_DATE(DateDue, '%m/%d/%Y')
BETWEEN DATE_SUB(CURDATE(), INTERVAL 365 DAY)
AND CURDATE()
关于mysql - 如何在 Varchar(10) 格式 mm/dd/yyyy 中使用 between 查询日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16926774/