From eb095c9bfd9addd617a9e260e3bec5e0273695a7 Mon Sep 17 00:00:00 2001 From: "Piyush:)" <47020544+piyushsarraf@users.noreply.github.com> Date: Thu, 11 May 2023 21:39:18 +0530 Subject: [PATCH] fix: Adding datetime and timestamp format logic (#840) Co-authored-by: Piyush Sarraf --- third_party/ibis/ibis_addon/operations.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/third_party/ibis/ibis_addon/operations.py b/third_party/ibis/ibis_addon/operations.py index 3fcee52db..87d81f520 100644 --- a/third_party/ibis/ibis_addon/operations.py +++ b/third_party/ibis/ibis_addon/operations.py @@ -157,6 +157,15 @@ def strftime_bigquery(translator, expr): strftime_format_func_name, fmt_string, arg_formatted ) +def strftime_mysql(translator, expr): + arg, format_string = expr.op().args + arg_formatted = translator.translate(arg) + arg_type = arg.type() + fmt_string = translator.translate(format_string) + if isinstance(arg_type, dt.Timestamp): + fmt_string = "%Y-%m-%d %H:%i:%S" + return sa.func.date_format(arg_formatted, fmt_string) + def format_hashbytes_teradata(translator, expr): arg, how = expr.op().args @@ -308,6 +317,7 @@ def sa_cast_postgres(t, expr): BigQueryExprTranslator._registry[HashBytes] = format_hashbytes_bigquery BigQueryExprTranslator._registry[RawSQL] = format_raw_sql BigQueryExprTranslator._registry[Strftime] = strftime_bigquery +MySQLExprTranslator._registry[Strftime] = strftime_mysql AlchemyExprTranslator._registry[RawSQL] = format_raw_sql AlchemyExprTranslator._registry[HashBytes] = format_hashbytes_alchemy MSSQLExprTranslator._registry[HashBytes] = sa_format_hashbytes_mssql