CREATE FUNCTION SWAP_ENDIAN(inString text) RETURNS TEXT DETERMINISTIC -- Expects a hex string: AbCdEf -- Returns the string swapped for endianness: EfCdAb BEGIN DECLARE position INT DEFAULT 1; DECLARE holder TEXT DEFAULT ''; WHILE position < LENGTH(inString) DO SET holder = CONCAT(SUBSTRING(inString, position, 2), holder); SET position = position + 2; END WHILE; RETURN holder; END
So you can do things like:
SELECT FROM_UNIXTIME( CONV( SWAP_ENDIAN( SUBSTRING( HEX( FROM_BASE64( 'Yk3XVQ8pAAAAZgAAAGoAAAAAAAQANS4xLjczLWxvZwAAAAAABBAAAAAAAAAAAAAAAA' 'AAAAAAAAAAAAAAAAAAAAAAAABiTddVEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC' ) ), 1, 8 ) ), 16, 10) ) AS event_timestamp;