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,数据类型的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 sybase 表列名及其数据类型和顺序?

java.sql.SQLException:将 Spark 数据帧保存到 Sybase 时找不到类型“TIMESTAMP”

通过 ODBC 显示 Sybase Image 数据类型的部分图像

sybase PRINT 打印 integer类型数据

PowerScript语法参考手册之数据类型

sybase中如何查询前一天的数据