DateTimeOffset(7)类似于从MSSQL到python datetime?

DateTimeOffset(7)类似于从MSSQL到python datetime?,python,sql-server,pyodbc,python-datetime,datetimeoffset,Python,Sql Server,Pyodbc,Python Datetime,Datetimeoffset,如何转换此字符串2017-10-13 15:30:00.0000000+00(如果您使用的是旧的ODBC驱动程序(例如,旧的driver=SQL Server),则应始终获得DATETIMEOFFSET(7)值的字符串表示形式,该值的长度正好为34个字符: 2017-10-13 15:30:00.0000000+00:00 你所需要做的就是修剪掉小数点后的第七位,并从偏移量中删除冒号 s='2017-10-13 15:30:00.0000000+00:00' f=s[:26]+s[27:31]

如何转换此字符串
2017-10-13 15:30:00.0000000+00
(如果您使用的是旧的ODBC驱动程序(例如,旧的
driver=SQL Server
),则应始终获得DATETIMEOFFSET(7)值的字符串表示形式,该值的长度正好为34个字符:

2017-10-13 15:30:00.0000000+00:00
你所需要做的就是修剪掉小数点后的第七位,并从偏移量中删除冒号

s='2017-10-13 15:30:00.0000000+00:00'
f=s[:26]+s[27:31]+s[32:]
打印(报告(f))
# '2017-10-13 15:30:00.000000 +0000'
…然后字符串将正确解析

dt=datetime.datetime.strtime(f,“%Y-%m-%d%H:%m:%S.%f%z”)
打印(报告(dt))
#datetime.datetime(2017、10、13、15、30,tzinfo=datetime.timezone.utc)
如果切换到识别DATETIMEOFFSET列并以本机方式返回这些列的较新ODBC驱动程序,则可以使用pyodbc来处理它

dt=datetime.datetime.strptime(f,'%Y-%m-%d %H:%M:%S.%f %z')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Program Files\Python36\lib\_strptime.py", line 565, in _strptime_datetime
        tt, fraction = _strptime(data_string, format)
      File "C:\Program Files\Python36\lib\_strptime.py", line 362, in _strptime
        (data_string, format))
    ValueError: time data '2017-10-13 15:30:00.000000 +00' does not match format '%Y-%m-%d %H:%M:%S.%f %z'