mysql 查询 - 插入数据 unix_timestamp ( now ( ) ) 问题

标签 mysql unix time timestamp

我有一个 INT (11) 列用于存储当前时间戳(以秒为单位)。查询看起来像:

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

我不知道为什么,但日期没有更改。当我发送查询时,列值没有改变并不重要。它有 1342692014 值,但我不知道为什么。

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

最佳答案

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

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

编辑:

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

ERROR 1630 (42000): FUNCTION test.NOW does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual

假设它仍然不是实际代码并且在修复语法错误后,我无法重现您的结果。我有根据的猜测是 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)

关于mysql 查询 - 插入数据 unix_timestamp ( now ( ) ) 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11558418/

相关文章:

android - 无法从 adb shell 读取和写入

python - 根据 python 中的区域设置格式化日期

mysql - Atomic [移动到另一个表,然后删除原始数据]

php - 如何在 PHP 中将 MYSQL_CLIENT_SSL 设置与 mysql_connect() 一起使用?

linux - 如何为多个应用程序部署 web2py 调度程序?

mysql - 计算查询中两次之间的差异

excel - 按时间间隔运行宏的代码?

php - 使用 Ajax 和 Codeigniter 的评论系统

MySQL 查询 - 无法确定如何编写特定查询

regex - Grep 语法困境