MySQL的STR_TO_DATE> =现在

时间:2013-07-20 16:38:42

标签: mysql date where

我希望从今天或更晚的日期获取MySQL数据库中的记录。数据以VARCHAR(fieldname datum)的形式记录到数据库中,因此我需要使用STR_TO_DATE。但是,此查询无效:

SELECT * FROM Diensten WHERE STR_TO_DATE('datum', '%m-%d-%Y') >= DATE(NOW()) ORDER BY STR_TO_DATE('datum', '%m-%d-%Y') ASC

我也尝试过CURDATE(),也没用。

查询在没有WHERE部分的情况下工作。有任何想法如何修复查询?

1 个答案:

答案 0 :(得分:2)

此表达式STR_TO_DATE('datum', '%m-%d-%Y')返回NULL,因为列名是使用单引号引用的。它不会转换列value的{​​{1}},但会转换字符串datum,这就是它导致datum值的原因。

要修复,只需删除列名称周围的单引号。

NULL