我现在正在处理一个用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,但没有用。所以我别无选择,我在寻找想法。谢谢你的帮助
2条答案
按热度按时间b91juud31#
在mysql中,您需要这样的内容:
这与您的问题中的代码相对应,但适用于mysql。
drnojrws2#
作用
CONVERT
在microsoft sql之间是不一样的。和mysqlhttps://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方言。通常简单的查询是可移植的,但更复杂的或使用函数的查询必须重写。