У меня есть mac адрес, сохраненный с типом mac address в postgresql. Мне нужно преобразовать первый октет в информацию о бите I / G и бите U / L ( больше информации ).
Пример: MAC-адрес AA-BB-CC-DD-EE-FF
. Первый октет - это AA
. Преобразовано в двоичный код: 0101 01010
. Последний бит представляет I / G: 0. Второй справа налево бит U / L: 1.
Как я могу сделать это в запросе postgresql?
Это то, что я имею до сих пор:
select id, mac, left(mac::text,2) as octet
from mytable
Возврат:
id,mac,octet
13,aa:XX:XX:XX:XX:XX,aa
Я также пытался left(mac::text,2)::integer as integer
, но я получаю сообщение об ошибке [22P02] ERROR: invalid input syntax for integer: "aa"
Я хочу получить следующий результат:
id, mac, octet, binary, ig_bit, ul_bit
13, aa:XX:XX:XX:XX:XX,aa, 1010 1010, 0, 1
Итак, я выделил первый бит, однако формат «текст», и я не могу преобразовать его в целое или двоичное.