我希望从今天或更晚的日期获取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部分的情况下工作。有任何想法如何修复查询?
答案 0 :(得分:2)
此表达式STR_TO_DATE('datum', '%m-%d-%Y')
返回NULL
,因为列名是使用单引号引用的。它不会转换列value
的{{1}},但会转换字符串datum
,这就是它导致datum
值的原因。
要修复,只需删除列名称周围的单引号。
NULL