Skip to content

Commit 19e878c

Browse files
cpcloudgforsyth
authored andcommitted
fix(mysql): render dates and timestamps correctly
1 parent b1407f8 commit 19e878c

File tree

7 files changed

+17
-0
lines changed

7 files changed

+17
-0
lines changed

ibis/backends/mysql/registry.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@ def _literal(_, op):
9898
#
9999
# This lets the database handle encoding rather than ibis
100100
return sa.cast(sa.literal(value), type_=sa.BINARY())
101+
elif dtype.is_date():
102+
return sa.func.date(value.isoformat())
103+
elif dtype.is_timestamp():
104+
# TODO: timezones
105+
return sa.func.timestamp(value.isoformat())
101106
elif dtype.is_time():
102107
return sa.func.maketime(
103108
value.hour, value.minute, value.second + value.microsecond / 1e6
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT
2+
DATE('2023-04-07') AS `datetime.date(2023, 4, 7)`
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT
2+
MAKETIME(4, 5, 6.230136) AS `datetime.time(4, 5, 6, 230136)`
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT
2+
TIMESTAMP('2023-04-07T04:05:06.230136') AS `datetime.datetime(2023, 4, 7, 4, 5, 6, 230136)`
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT
2+
MAKETIME(4, 5, 6.0) AS `datetime.time(4, 5, 6)`
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT
2+
MAKETIME(4, 5, 6.234567) AS `datetime.time(4, 5, 6, 234567)`
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT
2+
MAKETIME(4, 5, 6.230136) AS `datetime.time(4, 5, 6, 230136)`

0 commit comments

Comments
 (0)