sql: pass date/datetime objects in criterias (#49452) #987
|
@ -899,6 +899,11 @@ def test_sql_table_select_datetime(pub):
|
|||
len(data_class.select([st.Greater('receipt_time', (d + datetime.timedelta(days=20)).timetuple())]))
|
||||
== 29
|
||||
)
|
||||
assert len(data_class.select([st.Equal('receipt_time', datetime.date(1900, 1, 1).timetuple())])) == 0
|
||||
assert len(data_class.select([st.Equal('receipt_time', datetime.date(1, 1, 1))])) == 0
|
||||
assert len(data_class.select([st.Greater('receipt_time', datetime.date(1, 1, 1))])) == 50
|
||||
assert len(data_class.select([st.Equal('receipt_time', datetime.date(1, 1, 1).timetuple())])) == 0
|
||||
assert len(data_class.select([st.Greater('receipt_time', datetime.date(1, 1, 1).timetuple())])) == 50
|
||||
|
||||
|
||||
def test_select_limit_offset(pub):
|
||||
|
|
|
@ -44,10 +44,8 @@ class Criteria(wcs.qommon.storage.Criteria):
|
|||
self.field = kwargs.get('field')
|
||||
|
||||
def format_value(self, value):
|
||||
if isinstance(value, datetime.date) and not isinstance(value, datetime.datetime):
|
||||
return value.strftime('%Y-%m-%d')
|
||||
elif isinstance(value, time.struct_time):
|
||||
return datetime.datetime.fromtimestamp(time.mktime(value))
|
||||
if isinstance(value, time.struct_time):
|
||||
return datetime.datetime(*value[:6])
|
||||
else:
|
||||
return value
|
||||
|
||||
|
|
Loading…
Reference in New Issue