在Informix中将varchar转换为数字

Tol*_*lga 5 informix casting

我在Informix中将varchar类型转换为Int类型时遇到问题.实际上我不知道该值是否真的是varchar,我想转换为INT.这是一个沙盒系统.

例如:我正试图运行这种方式

Select telnumber from numbers n
 where Cast(n.telnumber AS INT) between 1234 and 9999
Run Code Online (Sandbox Code Playgroud)

我收到此错误:"字符到数字转换错误"

如果我像这样运行此查询:

Select telnumber from numbers n where n.telnumber between '1234' and '9999'
Run Code Online (Sandbox Code Playgroud)

它带来了一个结果集,但不在我定义的范围内.

130987
130710
130723
Run Code Online (Sandbox Code Playgroud)

如何将telnumber转换为数值并在1234和9999之间的"之间"使用它

Dou*_*rch 0

我不使用 Informix,但这在 SQL Server 中对我有用:

SELECT telnumber FROM numbers WHERE Abs(n.telnumber) BETWEEN 1234 AND 9999
Run Code Online (Sandbox Code Playgroud)

但是,您可能会遇到问题,因为电话号码实际上是字符串而不是 INT,并且最终将它们视为 INT 的任何尝试都会失败。