我创建了一个返回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 |
任何想法出了什么问题?
答案 0 :(得分:0)
如评论中所述,使用INT可以正常工作
CREATE
FUNCTION FLOAT2DATE(
value INT UNSIGNED
) RETURNS DATE RETURN str_to_date(
cast(
cast(
value as UNSIGNED
)as char
),
'%Y%m%d'
);