在平常中,我们总会有这样的需求,在插入或者修改时插入当前系统时间,有些童鞋的做法是把时间字段类型设置为datetime,然后在PHP端用date函数拼接SQL语句,或者使用NOW()函数。其实在MySQL中,datetime只是表示数据类型为YYYY-mm-dd HH:ii:ss格式,而timestamp类型则表示当前系统时间,无需写值。
我们创建一个b表,字段t1类型为datetime,t2类型为timestamp
mysql> create table b(t1 datetime,t2 timestamp); Query OK, 0 rows affected (0.01 sec) mysql> desc b; +-------+-----------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------+------+-----+-------------------+-----------------------------+ | t1 | datetime | YES | | NULL | | | t2 | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | +-------+-----------+------+-----+-------------------+-----------------------------+ 2 rows in set (0.00 sec)我们插入一条t1和t2都是null空值的记录
mysql> insert into b values(null,null); Query OK, 1 row affected (0.03 sec)看看结果
mysql> select * from b; +------+---------------------+ | t1 | t2 | +------+---------------------+ | NULL | 2012-07-04 13:31:11 | +------+---------------------+ 1 row in set (0.00 sec)我们发现,t1的值为NULL,t2的值为执行插入语句时的系统时间。所以如果有增改记录更新当前系统时间的可以把字段类型设置为timestamp,这样在SQL语句里就不需要再为该字段赋值即可完成插入当前系统时间的操作。
最后提示一下:一个表中只能有一个字段的类型为timestamp类型。
查看更多关于MySQL中datetime类型与timestamp类型的区别的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did8197