mysql - 在 MySQL 中创建函数时遇到问题

标签 mysql sql-server

我习惯在 MS SQL Server 中工作,所以 MySQL 对我来说总是有点陌生​​。我为 MS SQL Server 编写了以下内容,并尝试将其移植到 MySQL:

CREATE FUNCTION ToRadians
(@Degrees float)
RETURNS float
AS
BEGIN
  DECLARE @Radians float
  SELECT @Radians  = @Degrees * 3.1415927 / 180
  RETURN @Radians
END
GO

我有

CREATE FUNCTION ToRadians
(@Degrees float)
RETURNS float
BEGIN
  DECLARE @Radians float;
  SELECT @Radians  = @Degrees * 3.1415927 / 180;
  RETURN @Radians;
END

但是在 PHPMyAdmin 中,这给了我错误:

Error

SQL query:

CREATE FUNCTION ToRadians(
@Degrees float
) RETURNS float AS BEGIN DECLARE@Radians float;

MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@Degrees float)
RETURNS float
AS
BEGIN
DECLARE @Radians float' at line 2 

我所做的搜索表明上述 MySQL UDF 应该是正确的,但显然不是。 SELECT version() 返回 5.0.77

最佳答案

CREATE FUNCTION ToRadians (in_degrees FLOAT) RETURNS FLOAT
DETERMINISTIC
BEGIN
    RETURN in_degrees * 3.1415927 / 180;    
END;    

确定性,因为给定度数的返回值应始终以弧度表示相同。

此外,DEGREES() 和 RADIANS() 函数已经存在于 mysql 中。 RADIANS()

关于mysql - 在 MySQL 中创建函数时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8123117/

相关文章:

PHP MySQL : Print Tree - Parent Child Checkbox

sql - 如何在 SQL Server 中根据年份对记录进行分组

php - 显示数据库表的所有内容,而不仅仅是单行?

mysql - 如何修复日期函数的 SQL 查询?

php - 分拣车辆登记

mysql - 如何以 React 形式管理来自 Express 的 mysql 查询错误?

sql-server - 包含 1.5 亿页的 100,000 个 PDF 的文本索引

c# - 在 Azure 函数中调用带有参数的存储过程会出现错误

sql-server - 虚拟机中的 Azure SQL 数据库或 SQL Server?

SQL 多个外键作为主键