""" # noqa
-from datetime import datetime, timezone, timedelta
+from datetime import datetime, timedelta, timezone
import decimal
import re
import struct
# output converter function for datetimeoffset
def _handle_datetimeoffset(dto_value):
- # ref: https://github.com/mkleehammer/pyodbc/issues/134#issuecomment-281739794
- tup = struct.unpack("<6hI2h", dto_value) # e.g., (2017, 3, 16, 10, 35, 18, 0, -6, 0)
- return datetime(tup[0], tup[1], tup[2], tup[3], tup[4], tup[5], tup[6] // 1000,
- timezone(timedelta(hours=tup[7], minutes=tup[8])))
+ tup = struct.unpack("<6hI2h", dto_value)
+ return datetime(tup[0], tup[1], tup[2],
+ tup[3], tup[4], tup[5], tup[6] // 1000,
+ timezone(timedelta(hours=tup[7],
+ minutes=tup[8])))
odbc_SQL_SS_TIMESTAMPOFFSET = -155 # as defined in SQLNCLI.h
- conn.add_output_converter(odbc_SQL_SS_TIMESTAMPOFFSET, _handle_datetimeoffset)
+ conn.add_output_converter(odbc_SQL_SS_TIMESTAMPOFFSET,
+ _handle_datetimeoffset)
return on_connect
d2 = datetime.datetime(2007, 10, 30, 11, 2, 32)
dto = datetime.datetime(2007, 10, 30, 11, 2, 32, 0,
datetime.timezone(datetime.timedelta(hours=1)))
- t.insert().execute(adate=d1, adatetime=d2, atime=t1, adatetimeoffset=dto)
+ t.insert().execute(adate=d1, adatetime=d2, atime=t1,
+ adatetimeoffset=dto)
# NOTE: this previously passed 'd2' for "adate" even though
# "adate" is a date column; we asserted that it truncated w/o issue.
# As of pyodbc 4.0.22, this is no longer accepted, was accepted
# in 4.0.21. See also the new pyodbc assertions regarding numeric
# precision.
- t.insert().execute(adate=d1, adatetime=d2, atime=d2, adatetimeoffset=dto)
+ t.insert().execute(adate=d1, adatetime=d2, atime=d2,
+ adatetimeoffset=dto)
x = t.select().execute().fetchall()[0]
self.assert_(x.adate.__class__ == datetime.date)
t.delete().execute()
- t.insert().execute(adate=d1, adatetime=d2, atime=t1, adatetimeoffset=dto)
+ t.insert().execute(adate=d1, adatetime=d2, atime=t1,
+ adatetimeoffset=dto)
eq_(
- select([t.c.adate, t.c.atime, t.c.adatetime, t.c.adatetimeoffset], t.c.adate == d1)
+ select([t.c.adate, t.c.atime, t.c.adatetime, t.c.adatetimeoffset],
+ t.c.adate == d1)
.execute()
.fetchall(),
[(d1, t1, d2, dto)],