参数id为无符号整型:
id/10+1000000000 结果为时间戳 timestamp,再通过timestamp算出时间字符串,函数的返回值就为该时间字符串.如下例:
id=2760647183
id/10+1000000000 => 1276064718 => '2010-06-09 14:25:18'
这个函数如何写?
id/10+1000000000 结果为时间戳 timestamp,再通过timestamp算出时间字符串,函数的返回值就为该时间字符串.如下例:
id=2760647183
id/10+1000000000 => 1276064718 => '2010-06-09 14:25:18'
这个函数如何写?
Query OK, 0 rows affected (0.00 sec)mysql> select FROM_UNIXTIME(@id/10+1000000000);
+----------------------------------+
| FROM_UNIXTIME(@id/10+1000000000) |
+----------------------------------+
| 2010-06-09 14:25:18 |
+----------------------------------+
1 row in set (0.00 sec)mysql>
不过我还有个问题,就是我写的这个为啥不行?DELIMITER $$
CREATE FUNCTION info_time(infoID INT UNSIGNED) RETURNS DATETIME
BEGIN
DECLARE tm INT UNSIGNED;
SET tm = infID div 10 + 1000000000;
RETURN(FROM_UNIXTIME(tm));
END $$
DELIMITER ;
创建时,出现错误:
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
CREATE FUNCTION info_time(infoID INT UNSIGNED) RETURNS DATETIME DETERMINISTIC
BEGIN
DECLARE tm INT UNSIGNED;
SET tm = infID div 10 + 1000000000;
RETURN(FROM_UNIXTIME(tm));
END $$
DELIMITER ;