Я создал функцию, которая возвращает объект date
.
CREATE
FUNCTION FLOAT2DATE(
value float
) RETURNS DATE RETURN str_to_date(
cast(
value as char
),
'%Y%m%d'
);
Когда я запускаю код, все работает так, как ожидалось.
Но когда я запускаю код из-за функции, он работает не так, как ожидалось, и возвращает неправильное значение.
SET @VALUE = 20160101;
select FLOAT2DATE(@VALUE) as func, null as code
union
select null as func , str_to_date(
cast(
@VALUE as char
),
'%Y%m%d'
) as code;
func |code |
-----------|-----------|
2015-12-31 | |
|2016-01-01 |
Версия MySQL
select @@version
@@version |
-----------|
5.7.19-log |
Любые идеи, что пойдет не так?
Как упоминалось в комментариях, INT работает
CREATE
FUNCTION FLOAT2DATE(
value INT UNSIGNED
) RETURNS DATE RETURN str_to_date(
cast(
cast(
value as UNSIGNED
)as char
),
'%Y%m%d'
);