我不知道为什么,但列值总是作为字符串而不是小数返回,我不知道如何解决这个问题。
它们正确地存储在数据库中,但当我使用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')