在MySQL 4.0.21标准中,我有一个带日期的表,保存为字符串。
我想将此字符串与我的请求中的日期进行比较。
SELECT FE_CLIENT.*
FROM FE_CLIENT
WHERE D_DATFINPUBLI < '2010/06/03'
如何将我的列date_deb转换为比较日期?
答案 0 :(得分:5)
假设MySQL(如果没有,请重新提出问题)
使用MySQL STR_TO_DATE功能将'2010/06/03'置于DATETIME值。
SELECT FE_CLIENT.*
FROM FE_CLIENT
WHERE D_DATFINPUBLI < STR_TO_DATE('2010/06/03','%Y/%m,%d');
如果D_DATFINPUBLI
还不是DATETIME格式,请执行相同的操作。
编辑:
SELECT STR_TO_DATE( D_DATFINPUBLI, '%d/%m/%Y %h:%i' ) DD, FE_CLIENT . *
FROM FE_CLIENT
WHERE STR_TO_DATE( D_DATFINPUBLI, '%d/%m/%Y %h:%i' ) < STR_TO_DATE( '04/06/2010', '%d/%m/%Y' )
AND D_CDSTATUPUBLI <> 'EXP'
ORDER BY D_NIDPUBLI
答案 1 :(得分:1)
在查询执行之前,只需将字符串格式化为正确的格式
或者,如果你想严格使用mysql,
WHERE D_DATFINPUBLI < replace('2010/06/03','/','-')
修改强>
D_DATFINPUBLI字段必须为date
类型且格式为2010-06-03