summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-06-27 20:21:37 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-06-27 20:21:37 +0000
commit3591ef591f205f6563aa7f8f5c6cce261dc76d4f (patch)
treec72fadaef19777d647b44724024f320c339aa9b4 /lib
parentbd708ad176f936a94551280795c735d59ad32bf4 (diff)
downloadsqlalchemy-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.py13
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,)