Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

CONV() fungsi dalam kepingan salju

Saya menulis UDF untuk melakukan apa yang dilakukan CONV(). Ini berfungsi, tetapi sayangnya variabel Javascript tidak mendukung presisi numerik sebesar sampel Anda.

Ini akan berfungsi untuk input yang lebih kecil, tetapi untuk input Base36 besar Anda, hal berikut terjadi:

15468921890196183763 --seharusnya hasil ini

15468921890196185000 --Variabel asli JavaScript tidak memiliki tingkat presisi tersebut

Jika Anda merasa berguna untuk nilai yang lebih kecil untuk disembunyikan dari satu basis ke basis lainnya, ini dia:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat terowongan ssh di Ruby dan kemudian terhubung ke server mysql di host jarak jauh

  2. Tomcat7:Tidak dapat memuat kelas driver JDBC [com.mysql.jdbc.Driver]

  3. Temukan celah urutan yang hilang mysql

  4. TEMUKAN_IN_SET() vs IN()

  5. kesalahan mysql:ERROR 1018 (HY000):Tidak dapat membaca direktori '.' (kesalahan:13)