MySQL函数返回与其代码不同的输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL函数返回与其代码不同的输出相关的知识,希望对你有一定的参考价值。
我创建了一个返回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'
);
以上是关于MySQL函数返回与其代码不同的输出的主要内容,如果未能解决你的问题,请参考以下文章