diff --git a/pydal/objects.py b/pydal/objects.py index b50dda03a..caf151f97 100644 --- a/pydal/objects.py +++ b/pydal/objects.py @@ -2223,8 +2223,8 @@ def __init__( @staticmethod def _todate(value, regex=re.compile(r"^\d\d\d\d-\d\d-\d\d$")): - if value is None: - return value + if value in (None, ""): + return None if isinstance(value, datetime.date): value = value.isoformat() value = str(value)[:10] @@ -2233,8 +2233,8 @@ def _todate(value, regex=re.compile(r"^\d\d\d\d-\d\d-\d\d$")): @staticmethod def _totime(value, regex=re.compile(r"^\d\d:\d\d:\d\d$")): - if value is None: - return value + if value in (None, ""): + return None if isinstance(value, datetime.time): value = str(value) value = f"{value}:00:00"[:8] @@ -2243,8 +2243,8 @@ def _totime(value, regex=re.compile(r"^\d\d:\d\d:\d\d$")): @staticmethod def _todatetime(value, regex=re.compile(r"^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d$")): - if value is None: - return value + if value in (None, ""): + return None if isinstance(value, (datetime.date, datetime.datetime)): value = str(value) value = value.replace("T", " ")