Pregunta

En Informix, ¿cómo puedo convertir un tipo char (8) en un tipo money , de modo que pueda compararlo con otro money tipo?

Usando " tblAid.amt :: money as aid_amt " no funcionó. Utilizando " (tblAid.amt * 1) AS aid_amt " no funcionó.

¿Fue útil?

Solución

prueba esto - >

select (disb_amt::NUMERIC) disb_amt from tmp_kygrants;

Es posible que pueda comparar las cantidades en forma numérica.

Otros consejos

Primera pregunta: ¿por qué no estás almacenando un valor numérico en una columna numérica? Esto haría que el resto de tu pregunta sea discutible. También significaría que su sistema funcionará mejor. Cuando necesite almacenar valores de datos, use el tipo obvio; no utilice un tipo de cadena a menos que los datos sean una cadena.

Como ya se mencionó, puede usar la notación de conversión Informix no estándar:

SELECT some_column::MONEY FROM WhereEver;

También puede ser más cuidadoso con el tipo de lanzamiento, por ejemplo, con DINERO (8,2). También puede utilizar la notación estándar:

SELECT CAST(some_column AS MONEY(8,2)) FROM WhereEver;

Esto supone que está utilizando IDS 9.xo posterior: los productos más antiguos no son compatibles con las conversiones. Sin embargo, en general, Informix es bastante bueno para hacer conversiones automáticamente (por ejemplo, convertir números en cadenas). Sin embargo, las cadenas se comparan de forma lexicográfica y no numérica, por lo que es probable que un CAST sea más inteligente en este contexto, pero evitar la necesidad de un lanzamiento utilizando el tipo correcto en primer lugar es aún más sabio.

Ha pasado un tiempo desde que jugué con Informix y no tengo una instancia en ejecución en este momento. Sin embargo, hay dos cosas que pueden causar un problema aquí:

1) ya que es un char (8) puede contener valores que no se pueden convertir a números sin un poco de "limpieza". P.ej. " abc " ;. O " 1,234,567.00 " ;.
2) Espacios traseros. (Char en lugar de Varchar).

¿Qué error de información recibe en su lanzamiento explícito (:: dinero)?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top