Description
for date type argument, datediff() use DateConverter to convert input to a java Date object,
for example, a '2017-12-18' will get 2017-12-18T00:00:00.000+0800
for string type argument, datediff() use TextConverter to convert a string to date,
for '2012-01-01' we will get 2012-01-01T08:00:00.000+0800
now, datediff() will return a number less than the real date diff
we should use TextConverter to deal with date input too.
reproduce:
select datediff(cast('2017-12-18' as date), '2012-01-01'); --2177 select datediff('2017-12-18', '2012-01-01'); --2178