sql >> Databáze >  >> RDS >> Mysql

Funkce CONV() ve sněhové vločce

Napsal jsem UDF, aby dělal to, co dělá CONV(). Funguje to, ale bohužel proměnné Javascriptu nepodporují numerickou přesnost pro tak velké jako váš vzorek.

To bude fungovat pro menší vstupy, ale pro váš velký vstup Base36 se stane následující:

15468921890196183763 -- měl by být tento výsledek

15468921890196185000 --Nativní proměnné JavaScriptu nemají takovou úroveň přesnosti

V případě, že zjistíte, že je užitečné, aby se menší hodnoty překrývaly z jedné základny do druhé, zde je:

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. Převést „datetimeoffset“ na „date“ v SQL Server (příklady T-SQL)

  2. Android Pushing Updates v Obchodě Play

  3. Jaký je význam otazníku v MySQL ve sloupci WHERE =??

  4. Jak vybrat a optimalizovat indexy Oracle?