mysql - 将 PGSQL "Create Function"转换为 MySQL

标签 mysql function

我以前从未使用过 pgsql,我正在尝试将此函数转换为 Mysql...你能帮我吗?

create or replace function hot(ups integer, downs integer, date timestamp with time zone) returns numeric as $$
select round(cast(log(greatest(abs($1 - $2), 1)) + sign($1 - $2) * (date_part('epoch', $3) - 1134028003) / 45000.0 as numeric), 7) $$ language sql immutable

编辑:

到目前为止我已经得到了这个,但它仍然给我一个错误

create function hot(ups MEDIUMINT, downs MEDIUMINT, date timestamp) returns BIGINT
select round(cast(log(greatest(abs($1 - $2), 1)) + sign($1 - $2) * (unix_timestamp(date) - 1134028003) / 45000.0 BIGINT), 7)
$$ language sql immutable

“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,了解在第 2 行 'BIGINT), 7) $$ language sql immutable' 附近使用的正确语法”

最佳答案

定义了函数hot(ups, downs, date) (其中 upsdowns 是整数,date 是带时区的时间戳)如下 SQL 语句:

SELECT ROUND( CAST( LOG(GREATEST(ABS(ups - downs), 1))
                    + SIGN(ups - downs) * (DATE_PART('epoch', date) - 1134028003) / 45000.0
                    AS NUMERIC
                  ),
              7
            )
;

$$ ... $$表示法是多行字符串的 PostgreSQL 表示法(在本例中,包含定义函数的 SQL 查询)。 LANGUAGE SQL表示该函数位于 SQL 中(也不是,例如 PL/pgSQL)。 IMMUTABLE (请参阅 http://www.postgresql.org/docs/8.4/static/sql-createfunction.html )表示该函数不会修改数据库,并且对于相同的参数始终返回相同的结果。 (换句话说,它是一个“纯”函数。)

关于mysql - 将 PGSQL "Create Function"转换为 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9396695/

相关文章:

function - 如何从 Julia 结构的构造函数中调用函数?

php - 根据最大日期获取每组的最新行

c++ - 优雅的对象比较

mysql - ElasticSearch 和 jdbc - 映射、分析器、过滤器设置

java - 如何在Java MySQL中统计数据

c++ - 这些在 string 和 wstring 之间转换的函数是否应该作为仅 header 实现?

javascript - 我如何在三个js中迭代场景子项

swift - 类内的变异函数

mysql - 如何解析MySQL慢查询日志中最近24小时的条目

mysql - 如何将具有键值对的元表作为父行加入