Я запрашиваю SQL серверную базу данных со столбцом типа datetimeoffset
. Я использую 'pyodb c' и SQL Server 2017. Дата и время возвращаются в виде строк следующим образом:
"b'\xe3\x07\n\x00\x0e\x00\x12\x00\x03\x00\x05\x00@\xe1\x9d\x18\x00\x00\x00\x00'"
Pandas не распознает его как метку времени, и я попытался используя Python 3 'struct' модуль для его распаковки следующим образом:
import struct
raw = 'b\xe3\x07\n\x00\x0e\x00\x12\x00\x03\x00\x05\x00@\xe1\x9d\x18\x00\x00\x00\x00'
unpacked, = struct.unpack('<Q', raw)
Это выдает ошибку, потому что raw является строкой. Если я ввожу строку непосредственно в качестве аргумента в 'unpack', она выдает ошибку из-за неправильного количества байтов.
Как преобразовать значения столбца в pandas datetime?
Дополнительные примечания : Этот сайт указывает, что сервер SQL использует определенный тип, который pyodb c изначально не обрабатывает, как предложено mostert . Тем не менее, у них, похоже, нет проблем с извлечением понятного человеку значения.
[решено] Так что решение на этом сайте работает. TIL: при добавлении конвертера вы должны получить тип как целое число, в данном случае «-155». Этот сайт имеет целочисленные коды для некоторых других типов