传递给MySQL程序时,时间戳会发生什么变化?

时间:2014-01-29 15:29:44

标签: mysql timestamp

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时,我得到“不是有效的浮点值”错误。

1 个答案:

答案 0 :(得分:1)

CURRENT_TIMESTAMP()函数可能不会像预期的那样返回TIMESTAMP。它是NOW()的同义词。这可能是导致问题的原因。

请参阅http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_now