TypeORM-十进制列值作为字符串而不是十进制/数字返回



我不知道为什么,但列值总是作为字符串而不是小数返回,我不知道如何解决这个问题。

它们正确地存储在数据库中,但当我使用QueryBuilder进行查询时,结果显示为字符串。

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity({name:"collectionstats"})
export class CollectionStats {
@PrimaryGeneratedColumn()
id: number;
@Column("decimal")
one_day_volume: number;
@Column("decimal")
one_day_change: number;
@Column("decimal")
one_day_sales: number;
@Column("decimal")
one_day_average_price: number;
@Column("decimal")
seven_day_volume: number;
@Column("decimal")
seven_day_change: number;
@Column("decimal")
seven_day_sales: number;
@Column("decimal")
seven_day_average_price: number;
@Column("decimal")
thirty_day_volume: number;
@Column("decimal")
thirty_day_change: number;
@Column("decimal")
thirty_day_sales: number;
@Column("decimal")
thirty_day_average_price: number;
@Column("decimal")
total_volume: number;
@Column("decimal")
total_sales: number;
@Column("decimal")
total_supply: number;
@Column("decimal")
count: number;
@Column("decimal")
num_owners: number;
@Column("decimal")
average_price: number;
@Column("decimal")
num_reports: number;
@Column("decimal")
market_cap: number;
@Column("decimal")
floor_price: number;
}

以下是TypeORM问题跟踪器的解决方案:

共享我们使用的转换器:

/// ColumnNumericTransformer
export class ColumnNumericTransformer {
to(data: number): number {
return data;
}
from(data: string): number {
return parseFloat(data);
}
}

实体内:

@Column('numeric', {
precision: 7,
scale: 2,
transformer: new ColumnNumericTransformer(),
})
public myNumericColumn: number;

对我来说,杰斐逊的回答不起作用。

我使用了一个TypeOrm查询生成器,并做到了这一点:

.select('myNumericColumn :: float')

最新更新