datafusion icon indicating copy to clipboard operation
datafusion copied to clipboard

`date_part` does't work for `now()`

Open waitingkuo opened this issue 2 years ago • 1 comments

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.

waitingkuo avatar Aug 10 '22 09:08 waitingkuo

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.

waitingkuo avatar Aug 10 '22 09:08 waitingkuo

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 avatar Aug 19 '22 13:08 turbo1912

@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 avatar Aug 19 '22 14:08 waitingkuo

@waitingkuo I'd pick this up if no objections

comphead avatar Dec 07 '22 00:12 comphead