mysql铸造怪诞

jhdbpxl9  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(337)

我正在mysql服务器上尝试以下简单表达式:

select cast('2010-01-01' as timestamp)
select cast('2010-01-01' as varchar(55))

我得到以下错误:
[42000][mysql][odbc 8.0(w)driver][mysqld-8.0.13]您的sql语法有错误;在第1行(1064)(sqlexecdirectw)的“timestamp”附近,检查与您的mysql服务器版本相对应的手册,以获得正确的语法

[42000][mysql][odbc 8.0(w)driver][mysqld-8.0.13]您的sql语法有错误;在第1行(1064)(sqlexecdirectw)的“varchar(55))”附近,检查与您的mysql服务器版本对应的手册,以获得正确的语法```
有什么好处?这不是标准的sql语法吗?如果我改变 timestampdatetime 如果我改变了 varcharchar 这也行,但我不明白为什么我也要这么做。
我使用的是odbc,mysql 8,据我所知,这在任何其他rdbms中都能正常工作?

hsvhsicv

hsvhsicv1#

你需要阅读关于 cast() . 与大多数数据库不同,它不接受任意类型。
允许以下情况:

select cast('2010-01-01' as datetime);
select cast('2010-01-01' as char);

你的版本不是。这就是函数的工作原理。

相关问题