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'