【问题标题】:mysql query - insert data unix_timestamp ( now ( ) ) issuemysql 查询 - 插入数据 unix_timestamp ( now ( ) ) 问题
【发布时间】:2012-07-18 11:52:20
【问题描述】:

我有一个 INT (11) 列,用于以秒为单位存储当前时间戳。查询如下:

INSERT INTO `abc` (id, timestamp) VALUES ('', UNIX_TIMESTAMP ( NOW () ) )

我不知道为什么,但日期没有改变。发送查询无关紧要,列值不会更改。它有 1342692014 的值,但我不知道为什么。

时间戳是否有任何选项或其他功能?我必须以秒为单位存储日期。

【问题讨论】:

  • 1342692014 = 2012-07-19 12:00:14 (CET),所以看起来是一个正确的值
  • 你也可以跳过NOW()部分,因为UNIX_TIMESTAMP()不带参数给出当前时间戳
  • 不,它不起作用。查询后,时间戳只改变了几秒钟,而不是从头开始。
  • 你想得到什么日期?如果你使用 NOW() 你会得到今天的日期,如果你在几秒后发送查询,你的时间戳会大几秒
  • date('m') 是月份,使用 'date('d.m.Y H:i:s', $)'

标签: mysql unix time timestamp


【解决方案1】:

您永远不会在查询中引用timestamp 。你只有一个字符串

INSERT INTO `abc` (id, 'timestamp') VALUES ('', UNIX_TIMESTAMP ( NOW () ) )
                       ^^^^^^^^^^^

编辑:

我通过你的更新代码得到了这个:

错误 1630 (42000):FUNCTION test.NOW 不存在。检查 参考手册中的“函数名称解析和解析”部分

假设它仍然不是实际代码,并且在修复语法错误后,我无法重现您的结果。我有根据的猜测是 id 是一个自动递增的整数主键,您当前的 SQL 模式是让 MySQL 将 '' 作为 NULL 并插入一个新行......但我还没有真正测试过这个假设。

我的工作代码是这样的:

CREATE TABLE `abc` (
    `pk` INT(10) NOT NULL AUTO_INCREMENT,
    `id` VARCHAR(10) NULL DEFAULT NULL,
    `timestamp` INT(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (`pk`)
)
ENGINE=InnoDB;

INSERT INTO abc (id, timestamp) VALUES ('', UNIX_TIMESTAMP());
-- Wait a few seconds
INSERT INTO abc (id, timestamp) VALUES ('', UNIX_TIMESTAMP());
-- Wait a few seconds
INSERT INTO abc (id, timestamp) VALUES ('', UNIX_TIMESTAMP());

SELECT timestamp FROM abc WHERE id='';

...并返回:

+------------+
| timestamp  |
+------------+
| 1342694445 |
| 1342694448 |
| 1342694450 |
+------------+
3 rows in set (0.00 sec)

【讨论】:

  • 感谢 Alvaro 的努力。是的,我忘了说 ID 是一个 INT AUTO_INCREMENT FIELD。 UNIX_TIMESTAMP() 它正在工作。当我尝试在 php.ini 中输出秒到日期的值时,导致了问题。我用过: date('d.m.Y - H:m:s', $row['timestamp']);它应该是: date('d.m.Y - H:i:s', $row['timestamp']);这导致了所有糟糕的事情。
  • 未来提示:从 MySQL 调试 MySQL 问题 :)
  • 这是相当老的帖子,但想在这里更新... NOW 和括号之间不应该有空格 (NOW ()) 如果有,它会抛出 italic_#1630 - FUNCTION mydb.NOW 不存在。检查参考手册中的“函数名称解析和解析”部分_斜体
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
相关资源
最近更新 更多