我想从 MySQL 数据库中获取今天或以后日期的记录。数据作为VARCHAR(字段名数据)记录到数据库中,所以我需要使用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 部分的情况下工作。任何想法如何解决查询?
最佳答案
此表达式 STR_TO_DATE('datum', '%m-%d-%Y')
返回 NULL
,因为列名是使用单引号引用的。它不会转换列 value
的 datum
,但会转换字符串 datum
,这就是它生成 NULL
值的原因。
要修复,只需删除列名周围的单引号。
SELECT *
FROM Diensten
WHERE STR_TO_DATE(datum, '%d-%m-%Y') >= CURDATE()
ORDER BY STR_TO_DATE(datum, '%d-%m-%Y') ASC
关于MySQL where STR_TO_DATE >= 现在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17764321/