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;