MySQL: 比较两个转换函数的结果
MySQL: Comparing the result of two convert functions
我目前正在处理一个数据库,该数据库已使用 varchar 格式的日期进行初始化,而不是使用日期时间格式。
我应该将数据库的日期与输入日期(实际上是 2020 年 5 月 31 日)进行比较。
这是我的代码中出现问题的部分:
AND Convert(datetime,t1.fin_contrat, 103) > Convert(datetime, '31/05/2020', 103 )
但是我从 PhpMyAdmin 中得到一个错误:#1064 - 't1.fin_contrat, 103) >= Convert(datetime, '31/05/2020', 103 ) GROUP BY siren 附近的语法错误或者'第 1 行
根据此 link :https://docs.microsoft.com/fr-fr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15#implicit-conversions varchar 应该能够直接转换为 datetime 值。
我尝试使用 WHERE 而不是 AND 它不起作用。所以我别无选择,我正在寻找想法。
感谢您的帮助
CONVERT
与 Microsoft SQL 的功能不同。和 Mysql
https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_convert
转换字符串。 日期。你必须使用 STR_TO_DATE
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date
ps:
每个 sql 服务器软件(Oracle、Redshift、Posgtres、Mysql、MariaDB、MS SQL 服务器、Sqllite 等)都有自己的 SQL方言。通常简单的查询是可移植的,但更复杂或使用函数的查询必须重写。
在 MySQL 中,您想要这样的东西:
where date(t1.fin_contrat) = str_to_date('31/05/2020', '%d/%m/%Y')
这对应于您问题中的代码,但适用于 MySQL。
我目前正在处理一个数据库,该数据库已使用 varchar 格式的日期进行初始化,而不是使用日期时间格式。 我应该将数据库的日期与输入日期(实际上是 2020 年 5 月 31 日)进行比较。
这是我的代码中出现问题的部分:
AND Convert(datetime,t1.fin_contrat, 103) > Convert(datetime, '31/05/2020', 103 )
但是我从 PhpMyAdmin 中得到一个错误:#1064 - 't1.fin_contrat, 103) >= Convert(datetime, '31/05/2020', 103 ) GROUP BY siren 附近的语法错误或者'第 1 行
根据此 link :https://docs.microsoft.com/fr-fr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15#implicit-conversions varchar 应该能够直接转换为 datetime 值。 我尝试使用 WHERE 而不是 AND 它不起作用。所以我别无选择,我正在寻找想法。 感谢您的帮助
CONVERT
与 Microsoft SQL 的功能不同。和 Mysql
https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_convert
转换字符串。 日期。你必须使用 STR_TO_DATE
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date
ps:
每个 sql 服务器软件(Oracle、Redshift、Posgtres、Mysql、MariaDB、MS SQL 服务器、Sqllite 等)都有自己的 SQL方言。通常简单的查询是可移植的,但更复杂或使用函数的查询必须重写。
在 MySQL 中,您想要这样的东西:
where date(t1.fin_contrat) = str_to_date('31/05/2020', '%d/%m/%Y')
这对应于您问题中的代码,但适用于 MySQL。