MySQL 在哪里 STR_TO_DATE > = 现在

标签: MySQL
发布时间: 2015/6/11 21:53:01
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要记录从 MySQL 数据库的日期,今日或更高版本。数据记录到数据库为 VARCHAR (fieldname 基准),所以我需要使用 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(),也不起作用。

查询工作,没有哪一部分。任何想法如何解决查询吗?

解决方法 1:

此表达式 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
官方微信
官方QQ群
31647020