sql >> Database teknologi >  >> RDS >> Mysql

CONV() funktion i snefnug

Jeg skrev en UDF for at gøre, hvad CONV() gør. Det virker, men desværre understøtter Javascript-variabler ikke numerisk præcision for så stor som din prøve.

Dette vil fungere for mindre input, men for dit store Base36 input sker følgende:

15468921890196183763 --skal være dette resultat

15468921890196185000 --Javascript-native variabler har ikke det præcisionsniveau

Hvis du finder det nyttigt for mindre værdier at skjule fra en base til en anden, her er det:

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. hvordan man bruger streng venstre funktion i hql

  2. Er det muligt at bruge en variabel og ikke angive en returtype i postgreSQL?

  3. Hvordan current_timestamp() virker i PostgreSQL

  4. Oracle getConnection langsom