我正在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语法吗?如果我改变 timestamp
至 datetime
如果我改变了 varchar
至 char
这也行,但我不明白为什么我也要这么做。
我使用的是odbc,mysql 8,据我所知,这在任何其他rdbms中都能正常工作?
1条答案
按热度按时间hsvhsicv1#
你需要阅读关于
cast()
. 与大多数数据库不同,它不接受任意类型。允许以下情况:
你的版本不是。这就是函数的工作原理。