sql >> Database >  >> RDS >> Mysql

CONV() functie in sneeuwvlok

Ik heb een UDF geschreven om te doen wat CONV() doet. Het werkt, maar helaas ondersteunen Javascript-variabelen geen numerieke precisie voor zo groot als uw steekproef.

Dit werkt voor kleinere inputs, maar voor je grote Base36 input gebeurt het volgende:

15468921890196183763 --moet dit resultaat zijn

15468921890196185000 --Javascript-native variabelen hebben niet dat niveau van precisie

Voor het geval je het handig vindt om kleinere waarden van de ene basis naar de andere te verbergen, hier is het:

create or replace function CONV(VALUE_IN string, OLD_BASE float, NEW_BASE float)
returns string
language javascript
as
$$
    // Usage note: Loses precision for very large inputs
    return parseInt(VALUE_IN, Math.floor(OLD_BASE).toString(Math.floor(NEW_BASE)));
$$;



  1. PSQL-opdrachtregelargumenten in DO-script

  2. Wat zijn de verbindingslimieten voor Google Cloud SQL van App Engine en hoe kun je DB-verbindingen het beste hergebruiken?

  3. Unieke beperking die twee kolommen in MySQL controleert

  4. Doorzoek alle tabellen, alle kolommen voor een specifieke waarde SQL Server