sql >> Database teknologi >  >> RDS >> PostgreSQL

Decimalfelt Konverterer nul til 0E-10

Jeg er også løbet ind i dette problem og fandt ud af, at alt faktisk fungerer korrekt. I Python, hvis du faktisk definerer noget som dette Decimal("0.0000000000") du vil se dette i konsollen:

>>> Decimal("0.0000000000")
Decimal('0E-10')

I min situation konverterede jeg fra SQLite3 backend til PostgreSQL til produktion. Alt fungerede fint i SQLite, fordi det ikke eksplicit viser (eller gemmer) alle decimaltal. Så hvis du indsætter 0 i et SQLite-nummerfelt og derefter vælge det, får du 0 .

Men hvis du indsætter 0 i en PostgreSQL det numeriske felt vil fylde nul på decimalen og indsætte 0.0000000000 . Så når Python sætter dette i en decimal vil du se Decimal("0E-10") .

OPDATERING – rettet i Django 1.8




  1. Sådan sikkerhedskopieres og gendanner du en PostgreSQL-database via DBeaver

  2. Python 'float64' kan ikke konverteres til en MySQL-type, men i manuel forespørgsel er det ikke noget problem

  3. Deltag i forespørgslen med kun kolonner, der har alle værdier i "in"-sætningen

  4. Neo4j - Opret et indeks ved hjælp af Cypher