I don't know why, but but column values always get returned as strings instead of decimals and I don't know how to fix this issue.
They get stored properly in the database, but when I query using QueryBuilder
, the results are shown as strings.
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;
}
Here is a solution from the TypeORM issue tracker:
Sharing a transformer we use:
/// ColumnNumericTransformer export class ColumnNumericTransformer { to(data: number): number { return data; } from(data: string): number { return parseFloat(data); } }
In entity:
@Column('numeric', { precision: 7, scale: 2, transformer: new ColumnNumericTransformer(), }) public myNumericColumn: number;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With