mysql日期类型学习
2015-01-10 11:10
281 查看
mysql> select * from t;
+------+
| id |
+------+
| 100 |
+------+
mysql> alter table t add start_time datetime;
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table t add end_time timestamp;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table t add end_time timestamp;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> select * from t;
+------+------------+---------------------+
| id | start_time | end_time |
+------+------------+---------------------+
| 100 | NULL | 2015-01-10 09:49:09 |
+------+------------+---------------------+
1 row in set (0.00 sec)
mysql> show columns from t;
+------------+------------+------+-----+-------------------+--------------------
---------+
| Field | Type | Null | Key | Default | Extra
|
+------------+------------+------+-----+-------------------+--------------------
---------+
| id | tinyint(2) | YES | | NULL |
|
| start_time | datetime | YES | | NULL |
|
| end_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+------------+------+-----+-------------------+--------------------
mysql> update t set id=10;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from t;
+------+------------+---------------------+
| id | start_time | end_time |
+------+------------+---------------------+
| 10 | NULL | 2015-01-10 09:50:25 |
+------+------------+---------------------+
1 row in set (0.00 sec)
mysql> alter table t add update_time timestamp;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc t;
+-------------+------------+------+-----+---------------------+-----------------
------------+
| Field | Type | Null | Key | Default | Extra
|
+-------------+------------+------+-----+---------------------+-----------------
------------+
| id | tinyint(2) | YES | | NULL |
|
| start_time | datetime | YES | | NULL |
|
| end_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURREN
T_TIMESTAMP |
| update_time | timestamp | NO | | 0000-00-00 00:00:00 |
|
+-------------+------------+------+-----+---------------------+-----------------
mysql> alter table t add delete_time timestamp default current_timestamp;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc t;
+-------------+------------+------+-----+---------------------+-----------------
------------+
| Field | Type | Null | Key | Default | Extra
|
+-------------+------------+------+-----+---------------------+-----------------
------------+
| id | tinyint(2) | YES | | NULL |
|
| start_time | datetime | YES | | NULL |
|
| end_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURREN
T_TIMESTAMP |
| update_time | timestamp | NO | | 0000-00-00 00:00:00 |
|
| delete_time | timestamp | NO | | CURRENT_TIMESTAMP |
|
+-------------+------------+------+-----+---------------------+-----------------
------------+
5 rows in set (0.02 sec)
看到有2个timestamp类型的列时候,第二个的timestamp列的属性默认值就是0le,也没有update_current_timestamp属性,但是可以通过设置default来设置默认值。
+------+
| id |
+------+
| 100 |
+------+
mysql> alter table t add start_time datetime;
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table t add end_time timestamp;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table t add end_time timestamp;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> select * from t;
+------+------------+---------------------+
| id | start_time | end_time |
+------+------------+---------------------+
| 100 | NULL | 2015-01-10 09:49:09 |
+------+------------+---------------------+
1 row in set (0.00 sec)
mysql> show columns from t;
+------------+------------+------+-----+-------------------+--------------------
---------+
| Field | Type | Null | Key | Default | Extra
|
+------------+------------+------+-----+-------------------+--------------------
---------+
| id | tinyint(2) | YES | | NULL |
|
| start_time | datetime | YES | | NULL |
|
| end_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+------------+------+-----+-------------------+--------------------
mysql> update t set id=10;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from t;
+------+------------+---------------------+
| id | start_time | end_time |
+------+------------+---------------------+
| 10 | NULL | 2015-01-10 09:50:25 |
+------+------------+---------------------+
1 row in set (0.00 sec)
mysql> alter table t add update_time timestamp;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc t;
+-------------+------------+------+-----+---------------------+-----------------
------------+
| Field | Type | Null | Key | Default | Extra
|
+-------------+------------+------+-----+---------------------+-----------------
------------+
| id | tinyint(2) | YES | | NULL |
|
| start_time | datetime | YES | | NULL |
|
| end_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURREN
T_TIMESTAMP |
| update_time | timestamp | NO | | 0000-00-00 00:00:00 |
|
+-------------+------------+------+-----+---------------------+-----------------
mysql> alter table t add delete_time timestamp default current_timestamp;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc t;
+-------------+------------+------+-----+---------------------+-----------------
------------+
| Field | Type | Null | Key | Default | Extra
|
+-------------+------------+------+-----+---------------------+-----------------
------------+
| id | tinyint(2) | YES | | NULL |
|
| start_time | datetime | YES | | NULL |
|
| end_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURREN
T_TIMESTAMP |
| update_time | timestamp | NO | | 0000-00-00 00:00:00 |
|
| delete_time | timestamp | NO | | CURRENT_TIMESTAMP |
|
+-------------+------------+------+-----+---------------------+-----------------
------------+
5 rows in set (0.02 sec)
看到有2个timestamp类型的列时候,第二个的timestamp列的属性默认值就是0le,也没有update_current_timestamp属性,但是可以通过设置default来设置默认值。
相关文章推荐
- MySQL 学习教程(三)【整理】-列类型( 数值型/ 日期时间型/ 字符串型)
- Mysql学习笔记三列类型之日期时间
- Mysql学习历程基本语法(7)--时间日期类型
- MySQL学习----MySQL数据类型----03MySQL 日期和时间类型
- mysql中使用sql语句插入日期时间类型的写法
- [转]MySQL:MySQL日期数据类型、MySQL时间类型使用总结
- MySQL存储过程常用的函数(字符串类型操作,数学类,日期时间类)
- Sql Server2008 Transact-SQL 新兵器学习总结之-用户定义表类型和日期,时间数据类型
- MySQL学习笔记(七)―― MySQL的数据类型(字符型)
- MySQL:MySQL日期数据类型、MySQL时间类型使用总结
- 【MySQL数据类型2之--日期时间类型】
- 整理MySQL内置数据类型表备用,字符型、数值型、集合型、日期时间型
- java和mysql之间的时间日期类型传递【原】
- MySQL 数据类型学习笔记
- mysql 字符串转换成日期类型,日期类型的相减
- MySQL日期数据类型、时间类型使用总结
- 传智播客struts学习,formbean属性的整数与日期类型
- MySQL - 日期和时间类型概述
- MySQL日期数据类型、MySQL时间类型使用总结
- mysql 查询 int类型日期转换成datetime类型