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)
你在找这样的东西吗?
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)