php mysql时间戳
我需要跟踪在mysql数据库中创建用户的日期和时间。我有一个名为“created”的列,数据类型为TIMESTAMPphp mysql时间戳,php,mysql,timestamp,Php,Mysql,Timestamp,我需要跟踪在mysql数据库中创建用户的日期和时间。我有一个名为“created”的列,数据类型为TIMESTAMP 问题是,当用户更改其密码或其他信息时,时间戳值会更改。如何将其设置为不更改???使用日期时间列。时间戳自动更新。您只需将其默认子句设置为当前时间戳(如其他答案中的@和@): 测试用例: CREATE TABLE tb (`a` int, `c` TIMESTAMP DEFAULT CURRENT_TIMESTAMP); Query OK, 0 rows affected (0.0
问题是,当用户更改其密码或其他信息时,时间戳值会更改。如何将其设置为不更改???使用日期时间列。时间戳自动更新。您只需将其默认子句设置为
当前时间戳
(如其他答案中的@和@):
测试用例:
CREATE TABLE tb (`a` int, `c` TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.04 sec)
INSERT INTO tb (a) VALUES (1);
Query OK, 1 row affected (0.01 sec)
SELECT * FROM tb;
+------+---------------------+
| a | c |
+------+---------------------+
| 1 | 2010-06-09 23:31:16 |
+------+---------------------+
1 row in set (0.00 sec)
UPDATE tb SET a = 5;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
SELECT * FROM tb;
+------+---------------------+
| a | c |
+------+---------------------+
| 5 | 2010-06-09 23:31:16 |
+------+---------------------+
1 row in set (0.00 sec)
编辑: 在我最初的回答中,我建议使用
DATETIME
列,并将DEFAULT
子句设置为CURRENT\u TIMESTAMP
。但是,这只有在使用时间戳
数据类型时才可能,如下所示:
数据类型规范中的DEFAULT
value子句指示列的默认值。除了一个例外,默认值必须是常量;它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为函数的值,例如NOW()
或CURRENT\u date
。例外情况是,您可以指定当前时间戳
作为时间戳
列的默认值
让它成为约会时间?
- 保持格式不变,但插入时请使用
正确格式化插入的字符串date()
- 然后,当用户更改其信息时,需要
更新
创建表时,应忽略更新时的
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
应该是
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
在“属性”下,禁用“更新当前时间戳”。将其更改为
默认当前时间戳
,否则它将自动更新。从:
在CREATE TABLE语句中,第一个TIMESTAMP列可以通过以下任一方式声明:
使用默认的CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句,列的默认值具有当前时间戳,并且会自动更新
既没有DEFAULT子句,也没有ON UPDATE子句,它与UPDATE CURRENT\u TIMESTAMP上的DEFAULT CURRENT\u TIMESTAMP相同。
使用默认的CURRENT_TIMESTAMP子句和no ON UPDATE子句,列的默认值具有当前时间戳,但不会自动更新
强调我的。在您的情况下,这有点脏,但您可以通过执行以下操作暂时禁用自动更新:
UPDATE woot SET password=<value_to_set>, timestamp_colum_name=timestamp_colum_name;
UPDATE woot SET password=,timestamp\u column\u name=timestamp\u column\u name;
(在那里找到的:)
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
UPDATE woot SET password=<value_to_set>, timestamp_colum_name=timestamp_colum_name;