3
0

Improve posgresql casting

This commit is contained in:
Denis Arh
2020-12-18 15:14:03 +01:00
parent 1d5ea52021
commit cf9caa8c35
+3 -3
View File
@@ -8,11 +8,11 @@ import (
func fieldToColumnTypeCaster(field rdbms.ModuleFieldTypeDetector, ident string) (string, error) {
switch true {
case field.IsBoolean():
return fmt.Sprintf("rv_%s.value NOT IN ('', '0', 'false', 'f', 'FALSE', 'F', false)", ident), nil
return fmt.Sprintf("CASE WHEN rv_%s.value NOT IN ('', '0', 'false', 'f', 'FALSE', 'F') THEN 1 ELSE 0 END ", ident), nil
case field.IsNumeric():
return fmt.Sprintf("rv_%s.value::NUMERIC", ident), nil
return fmt.Sprintf("CAST('0' || rv_%s.value AS NUMERIC) ", ident), nil
case field.IsDateTime():
return fmt.Sprintf("rv_%s.value::TIMESTAMP", ident), nil
return fmt.Sprintf(`to_timestamp(rv_%s.value,'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"') `, ident), nil
case field.IsRef():
return fmt.Sprintf("rv_%s.ref ", ident), nil
default: