如何使用Varchar(10)格式mm/dd/yyyy之间查询日期范围

Tim*_*m S 2 mysql varchar date between

我试图只显示"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' )
Run Code Online (Sandbox Code Playgroud)

Yog*_*ngh 5

你在找这样的东西吗?

 SELECT DocNum, DateDue 
 FROM prod_po_list
 WHERE STR_TO_DATE(DateDue, '%m/%d/%Y')
       BETWEEN DATE_SUB(CURDATE(), INTERVAL 365 DAY)
       AND CURDATE()
Run Code Online (Sandbox Code Playgroud)