datafusion
datafusion copied to clipboard
`date_part` does't work for `now()`
Describe the bug A clear and concise description of what the bug is.
To Reproduce Steps to reproduce the behavior:
❯ select date_part('hour', now());
Plan("Coercion from [Utf8, Timestamp(Nanosecond, Some(\"UTC\"))] to the signature OneOf([Exact([Utf8, Date32]), Exact([Utf8, Date64]), Exact([Utf8, Timestamp(Second, None)]), Exact([Utf8, Timestamp(Microsecond, None)]), Exact([Utf8, Timestamp(Millisecond, None)]), Exact([Utf8, Timestamp(Nanosecond, None)])]) failed.")
note that it could be fixed by
❯ select date_part('hour', now()::timestamp);
+-------------------------------------------------------------------+
| datepart(Utf8("hour"),CAST(now() AS Timestamp(Nanosecond, None))) |
+-------------------------------------------------------------------+
| 6 |
+-------------------------------------------------------------------+
1 row in set. Query took 0.000 seconds.
the reason for that is now()
output timestamp with time zone
, but our date_part
doesn't work for it
Expected behavior A clear and concise description of what you expected to happen.
Additional context Add any other context about the problem here.
extract has the same behavior
❯ select extract(hour from now());
Plan("Coercion from [Utf8, Timestamp(Nanosecond, Some(\"UTC\"))] to the signature OneOf([Exact([Utf8, Date32]), Exact([Utf8, Date64]), Exact([Utf8, Timestamp(Second, None)]), Exact([Utf8, Timestamp(Microsecond, None)]), Exact([Utf8, Timestamp(Millisecond, None)]), Exact([Utf8, Timestamp(Nanosecond, None)])]) failed.")
❯ select extract(hour from now()::timestamp);
+-------------------------------------------------------------------+
| datepart(Utf8("HOUR"),CAST(now() AS Timestamp(Nanosecond, None))) |
+-------------------------------------------------------------------+
| 6 |
+-------------------------------------------------------------------+
1 row in set. Query took 0.000 seconds.
Hello @waitingkuo, is anyone working on this? If not I can try this one (maybe this is even fixed with some of the other recent timestamp fixes)
@turbo1912 i'm not working on this yet. It's not fixed yet, we could only cast Timestamp(Nanosecond, Some(\"UTC\")
to Timestamp(Nanosecond, None)
for now. I'd be great if you can help ❤️
@waitingkuo I'd pick this up if no objections