如何将MySQL函数结果转换为tinyint(1)

时间:2009-11-18 21:37:49

标签: asp.net mysql boolean tinyint

这是问题所在。在MySQL的Connector / NET中,TINYINT(1)字段正确地来回转换为.NET bool值。如果我从具有TINYINT(1)列的表格中进行选择,那么一切都是黄金的。但是,当您使用内置的MySQL v5.0函数时:

SELECT (3 BETWEEN 2 AND 4) AS oddly_not_boolean;

数据库中的实际返回类型将此字段注册为INTBIGINT,其中Connector / .NET显然不会转换为bool。 MySQL CAST()CONVERT()不允许转换为TINYINT(1)

我甚至尝试用户函数来执行此操作,但这不起作用(编辑:此执行工作):< / p>

CREATE FUNCTION `to_bool`(var_num BIGINT)
    RETURNS TINYINT(1) RETURN var_num;

如何在MySQL中的查询中将INT转换为TINYINT(1)

编辑:上面的函数实际上是将值转换为TINYINT(1),但是我的Connector / NET只是被错误修改,并没有正确转换函数中的值。

更新2009-11-03:更新了我的连接器,它仍然让我回到Int32。进一步测试表明,这是MySQL 5.0.x中的InnoDB bug,仅在特定情况下显示。

0 个答案:

没有答案
相关问题