| --- |
| { |
| "title": "HEX", |
| "language": "en", |
| "description": "The HEX function converts input parameters to hexadecimal string representation." |
| } |
| --- |
| |
| ## Description |
| |
| The HEX function converts input parameters to hexadecimal string representation. This function is MySQL-compatible and supports both numeric and string input types with different conversion rules. |
| |
| If the input parameter is a number (BIGINT type), returns the hexadecimal string representation of that number. |
| |
| If the input parameter is a string, converts each character (by byte) to two hexadecimal characters, then concatenates all converted characters into the result string. |
| |
| ## Syntax |
| |
| ```sql |
| HEX(<expr>) |
| ``` |
| |
| ## Parameters |
| |
| | Parameter | Description | |
| |-------|--------------| |
| | `<expr>` | Input parameter, can be BIGINT type number or VARCHAR type string | |
| |
| ## Return Value |
| |
| Returns VARCHAR type, representing the hexadecimal representation of the input parameter. |
| |
| Conversion rules: |
| - Numeric input: Converts to corresponding hexadecimal value (within BIGINT range) |
| - String input: Each byte converts to two uppercase hexadecimal characters |
| - Negative numbers are converted in two's complement binary form |
| |
| Special cases: |
| - If parameter is NULL, returns NULL |
| - Number 0 converts to '0' |
| - Empty string converts to empty string |
| - Negative numbers convert to hexadecimal representation of 64-bit two's complement |
| |
| ## Examples |
| |
| 1. Basic number conversion |
| ```sql |
| SELECT HEX(12), HEX(-1); |
| ``` |
| ```text |
| +---------+------------------+ |
| | HEX(12) | HEX(-1) | |
| +---------+------------------+ |
| | C | FFFFFFFFFFFFFFFF | |
| +---------+------------------+ |
| ``` |
| |
| 2. String conversion |
| ```sql |
| SELECT HEX('1'), HEX('@'), HEX('12'); |
| ``` |
| ```text |
| +----------+----------+-----------+ |
| | HEX('1') | HEX('@') | HEX('12') | |
| +----------+----------+-----------+ |
| | 31 | 40 | 3132 | |
| +----------+----------+-----------+ |
| ``` |
| |
| 3. Large integer conversion |
| ```sql |
| SELECT HEX(255), HEX(65535), HEX(16777215); |
| ``` |
| ```text |
| +----------+------------+----------------+ |
| | HEX(255) | HEX(65535) | HEX(16777215) | |
| +----------+------------+----------------+ |
| | FF | FFFF | FFFFFF | |
| +----------+------------+----------------+ |
| ``` |
| |
| 4. NULL value handling |
| ```sql |
| SELECT HEX(NULL); |
| ``` |
| ```text |
| +-----------+ |
| | HEX(NULL) | |
| +-----------+ |
| | NULL | |
| +-----------+ |
| ``` |
| |
| 5. Zero and empty string |
| ```sql |
| SELECT HEX(0), HEX(''); |
| ``` |
| ```text |
| +--------+--------+ |
| | HEX(0) | HEX('') | |
| +--------+--------+ |
| | 0 | | |
| +--------+--------+ |
| ``` |