diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-06-27 20:21:37 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-06-27 20:21:37 +0000 |
| commit | 3591ef591f205f6563aa7f8f5c6cce261dc76d4f (patch) | |
| tree | c72fadaef19777d647b44724024f320c339aa9b4 /lib | |
| parent | bd708ad176f936a94551280795c735d59ad32bf4 (diff) | |
| download | sqlalchemy-3591ef591f205f6563aa7f8f5c6cce261dc76d4f.tar.gz | |
- applied the "reverse" of r4877 from trunk; correct microsecond behavior is available in 0.4 if you turn off "__legacy_microseconds__" [ticket:1090]
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/databases/sqlite.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py index f8bea90eb..040e23a4b 100644 --- a/lib/sqlalchemy/databases/sqlite.py +++ b/lib/sqlalchemy/databases/sqlite.py @@ -42,7 +42,8 @@ class SLSmallInteger(sqltypes.Smallinteger): class DateTimeMixin(object): __format__ = "%Y-%m-%d %H:%M:%S" - + __legacy_microseconds__ = True + def bind_processor(self, dialect): def process(value): if isinstance(value, basestring): @@ -50,7 +51,10 @@ class DateTimeMixin(object): return value elif value is not None: if self.__microsecond__ and getattr(value, 'microsecond', None) is not None: - return value.strftime(self.__format__ + "." + str(value.microsecond)) + if self.__legacy_microseconds__: + return value.strftime(self.__format__ + '.' + str(value.microsecond)) + else: + return value.strftime(self.__format__ + ('.%06d' % value.microsecond)) else: return value.strftime(self.__format__) else: @@ -62,7 +66,10 @@ class DateTimeMixin(object): return None try: (value, microsecond) = value.split('.') - microsecond = int(microsecond) + if self.__legacy_microseconds__: + microsecond = int(microsecond) + else: + microsecond = int((microsecond + '000000')[0:6]) except ValueError: microsecond = 0 return time.strptime(value, self.__format__)[0:6] + (microsecond,) |
