Php 如何使用sql请求动态转换sql表中的dd.mm.yyyy日期并获取小于

Php 如何使用sql请求动态转换sql表中的dd.mm.yyyy日期并获取小于,php,mysql,sql,sql-server,Php,Mysql,Sql,Sql Server,所以我有一个表,有“日期”列。数据类型为varchar。我想得到比curdate大的日期。在date列中,我有dd.mm.yyyy格式的日期,所以我需要在make>=之前对其进行转换。如何做到这一点 SELECT * FROM online_plan WHERE CONVERT(datetime, date, 104) >= CURDATE() AND squad = '10' AND status !='opened' 不起作用 CONVERTdate

所以我有一个表,有“日期”列。数据类型为varchar。我想得到比curdate大的日期。在date列中,我有dd.mm.yyyy格式的日期,所以我需要在make>=之前对其进行转换。如何做到这一点

SELECT * 
FROM online_plan 
WHERE 
    CONVERT(datetime, date, 104) >= CURDATE() 
    AND squad = '10' 
    AND status !='opened'
不起作用 CONVERTdatetime,date,104>=CURDATE

您似乎混合了MySQL和SQL Server语法

一方面,是一个合法的SQL Server函数,但该RDBMS中不存在CURDATE;您需要改为使用,如下所示:

CONVERT(datetime, date, 104) >= GETDATE()
另一方面,MySQL支持但不支持转换;你需要:


为什么不将日期存储为适当的数据类型?使用日期或日期时间列表示日期,而不是varchars..这是另一个问题:。我们能解决这个问题吗。任务?:我不确定你的问题是。。。此外,您正在将日期存储为varchar…是否有方法通过一个请求将varchar转换为动态日期,如我的示例所示?当然可以!你试过了吗?您使用的是哪种数据库管理系统?
STR_TO_DATE(date, '%d.%m.%Y') >= CURDATE()