Sybase,数据类型
Posted
技术标签:
【中文标题】Sybase,数据类型【英文标题】:Sybase, data type 【发布时间】:2020-03-28 22:43:01 【问题描述】:我有 2 个查询:
(1)
declare @m varchar
set @m='10'
select * from test where month=@m
(2)
declare @m varchar(2)
set @m='10'
select * from test where month=@m
结果中的行数不同。在 2 个变体中比在第一个变体中更多。可能是什么原因?
【问题讨论】:
您可以通过尝试选择您为@m
设置的内容进行调试,因此在set
之后尝试select @m
。这样您就可以看到变量中存储的内容。
【参考方案1】:
这是因为当您不指定 varchar
变量可以容纳多少字节时,引擎会使用 default 和 1
:
当 n 未在数据定义或变量声明中指定时 语句,默认长度为1。如果使用时没有指定n CAST 和 CONVERT 函数,默认长度为 30。
所以,在第一种情况下,您有:
select * from test where month=1
第二个:
select * from test where month=10
【讨论】:
谢谢,对我有帮助。以上是关于Sybase,数据类型的主要内容,如果未能解决你的问题,请参考以下文章
java.sql.SQLException:将 Spark 数据帧保存到 Sybase 时找不到类型“TIMESTAMP”