mysql:比较两个convert函数的结果

slhcrj9b  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(357)

我现在正在处理一个用varchar中的日期而不是用datetime格式初始化的数据库。我应该比较db的日期和输入日期(实际上是2020年5月31日)。
下面是我的代码中制造麻烦的部分:

AND Convert(datetime,t1.fin_contrat, 103) > Convert(datetime, '31/05/2020', 103 )

但是我从phpmyadmin得到了一个错误,它是:#1064-语法错误靠近't1.fin_contat,103)>=convert(datetime,'31/05/2020',103)group by siren或'line 1
根据这个链接:https://docs.microsoft.com/fr-fr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15#implicit-转换varchar应该能够直接转换为datetime值。我试着用where代替where,但没有用。所以我别无选择,我在寻找想法。谢谢你的帮助

b91juud3

b91juud31#

在mysql中,您需要这样的内容:

where date(t1.fin_contrat) = str_to_date('31/05/2020', '%d/%m/%Y')

这与您的问题中的代码相对应,但适用于mysql。

drnojrws

drnojrws2#

作用 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-迄今为止
附言:
每个sql server软件(oracle、redshift、posgtres、mysql、mariadb、ms sql server、sqllite等)都有自己的sql方言。通常简单的查询是可移植的,但更复杂的或使用函数的查询必须重写。

相关问题