summaryrefslogtreecommitdiff
path: root/django/db/backends/postgresql/operations.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/backends/postgresql/operations.py')
-rw-r--r--django/db/backends/postgresql/operations.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/django/db/backends/postgresql/operations.py b/django/db/backends/postgresql/operations.py
index e8ce3f242b..83fe7c21ec 100644
--- a/django/db/backends/postgresql/operations.py
+++ b/django/db/backends/postgresql/operations.py
@@ -27,6 +27,23 @@ class DatabaseOperations(BaseDatabaseOperations):
else:
return "EXTRACT('%s' FROM %s)" % (lookup_type, field_name)
+ def date_interval_sql(self, sql, connector, timedelta):
+ """
+ implements the interval functionality for expressions
+ format for Postgres:
+ (datefield + interval '3 days 200 seconds 5 microseconds')
+ """
+ modifiers = []
+ if timedelta.days:
+ modifiers.append(u'%s days' % timedelta.days)
+ if timedelta.seconds:
+ modifiers.append(u'%s seconds' % timedelta.seconds)
+ if timedelta.microseconds:
+ modifiers.append(u'%s microseconds' % timedelta.microseconds)
+ mods = u' '.join(modifiers)
+ conn = u' %s ' % connector
+ return u'(%s)' % conn.join([sql, u'interval \'%s\'' % mods])
+
def date_trunc_sql(self, lookup_type, field_name):
# http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC
return "DATE_TRUNC('%s', %s)" % (lookup_type, field_name)