-1

仍然没有解决以字符串形式写入的日期的问题,这是另一个问题。
我有文本列,其中只有数字作为写入(如文本)。
通过使用函数 MAX,我得到不正确的结果,因为 9 大于 30。
这里是否有任何内联函数,如 VAL 或 CINT,或者我可以比较和使用文本数据(仅限数字),如 SELECT、MAX 和其他类似查询中的数字?

在以下示例中看起来如何:

 mCmd = New OdbcCommand("SELECT MAX(myTextColumn) FROM " & myTable, mCon)
4

2 回答 2

2

你需要使用max(to_number(myTextColumn, '999999'))

更多详细信息在手册中:http ://www.postgresql.org/docs/current/static/functions-formatting.html

如果所有“数字”都是整数,您还可以使用强制转换运算符:max(myTextColumn::int)

如果您的文本值格式正确,您可以简单地将它们转换为双精度,例如:'3.14'::numeric.

如果文本未根据您需要使用to_number()包含小数点分隔符的格式掩码的语言设置进行格式化:to_number('3.14', '9.99')

于 2013-01-04T10:55:47.337 回答
1

要使 MAX 工作得更好,您需要首先将文本字段转换为数字格式

mCmd = New OdbcCommand("SELECT MAX(TO_NUMBER(myTextColumn, '99999')) FROM " & myTable, mCon)
于 2013-01-04T10:56:36.353 回答