call TimestampTest(CURRENT_TIMESTAMP());
使用:
CREATE DEFINER=`root`@`localhost` PROCEDURE `TimestampTest`(theTimeStamp TIMESTAMP)
BEGIN
INSERT INTO Log(`Timestamp`, `Text`)
VALUES(CURRENT_TIMESTAMP(), 'test');
END
不起作用:
CREATE DEFINER=`root`@`localhost` PROCEDURE `TimestampTest`(theTimeStamp TIMESTAMP)
BEGIN
INSERT INTO Log(`Timestamp`, `Text`)
VALUES(theTimeStamp, 'test');
END
执行INSERT语句时,我得到: '201401291550024.000000'不是有效的浮点值
那么在通过存储过程时TIMESTAMP会发生什么?使用SQL调试器我看到 theTimeStamp 参数具有有效值,但在执行INSERT时,我得到“不是有效的浮点值”错误。
答案 0 :(得分:1)
CURRENT_TIMESTAMP()函数可能不会像预期的那样返回TIMESTAMP。它是NOW()的同义词。这可能是导致问题的原因。
请参阅http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_now