首页 » 编程 » Python-8.MySQL数据库 » 正文

数据类型-日期类型

日期类型:date, time, datetime, timestamp, year

作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等。

 

这几个类型的存入库里的格式以及可存范围:

year

YYYY (1901/2155)

date

YYYY-MM-DD (1000-01-01/9999-12-31)

time

HH:MM:SS(’-838:59:59’/’838:59:59’)

datetime

YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)

timestamp

YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

 

来看一下小例子:

MariaDB [db1]> create table t11(  
    -> name char(6),
    -> t_year year,
    -> t_date date,
    -> t_time time,
    -> t_datetime datetime,
    -> t_timestamp timestamp);
Query OK, 0 rows affected (0.01 sec)

MariaDB [db1]> insert into t11 values("alex",now(),now(),now(),now(),now());   # now()表示调用mysql内置函数获取当前时间
Query OK, 1 row affected, 3 warnings (0.00 sec)

MariaDB [db1]> select * from t11;   # 可以看到各个类型的存入格式
+------+--------+------------+----------+---------------------+---------------------+
| name | t_year | t_date     | t_time   | t_datetime          | t_timestamp         |
+------+--------+------------+----------+---------------------+---------------------+
| alex |   2019 | 2019-04-05 | 01:44:15 | 2019-04-05 01:44:15 | 2019-04-05 01:44:15 |
+------+--------+------------+----------+---------------------+---------------------+
1 row in set (0.00 sec)

 

注意:

1. 单独插入时间时,需要以字符串的形式,按照对应的格式插入

2. 插入年份时,尽量使用4位值

3. 插入两位年份时,<=69,以20开头,比如50, 结果2050

                                      >=70,以19开头,比如71,结果1971

 

 

datetime与timestamp的区别:

在实际应用的很多场景中,MySQL的这两种日期类型都能够满足我们的需要,存储精度都为秒,但在某些情况下,会展现出他们各自的优劣,下面就来总结一下两种日期类型的区别。

1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。

2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,操作系统以及客户端连接都有时区的设置。

3.DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。

4.DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。

 

 

Tips:

  1. sql语句后加  \c  可终止语句运行,如果sql语句中有引号需要先将引号补齐。
  2. sql语句后加  \G  将每条记录按行显示,适用于字段太多,终端无法以友好的格式进行展现的时候。

 

发表评论

− 8 = 2