【发布时间】:2011-02-27 04:56:18
【问题描述】:
在 MySQL 4.0.21-standard 中,我有一个带有日期的表,保存为字符串。
我想将此字符串与我请求中的日期进行比较。
SELECT FE_CLIENT.*
FROM FE_CLIENT
WHERE D_DATFINPUBLI < '2010/06/03'
如何将我的列 date_deb 转换为日期以进行比较?
【问题讨论】:
在 MySQL 4.0.21-standard 中,我有一个带有日期的表,保存为字符串。
我想将此字符串与我请求中的日期进行比较。
SELECT FE_CLIENT.*
FROM FE_CLIENT
WHERE D_DATFINPUBLI < '2010/06/03'
如何将我的列 date_deb 转换为日期以进行比较?
【问题讨论】:
假设 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
【讨论】:
SELECT STR_TO_DATE('03/06/2010','%d/%m/%Y')
在查询执行之前将你的字符串格式化为正确的格式
或者,如果你想严格使用 mysql,
WHERE D_DATFINPUBLI < replace('2010/06/03','/','-')
编辑:
D_DATFINPUBLI 字段必须为date 类型且格式为2010-06-03
【讨论】: