在mysql上比较字符串和日期

时间:2010-06-03 08:33:27

标签: mysql string date compare

在MySQL 4.0.21标准中,我有一个带日期的表,保存为字符串。

我想将此字符串与我的请求中的日期进行比较。

SELECT FE_CLIENT.*
FROM FE_CLIENT
WHERE D_DATFINPUBLI < '2010/06/03'

如何将我的列date_deb转换为比较日期?

2 个答案:

答案 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