三. 日期和时间
日期和时间的类型有: Year, Time, Date, DateTime, Timestamp
字节数和取值范围:
三.一 Year
只存入年份。 一般用 int(4) 进行代替。 不常用
三.二 Time
只存入时间。 格式是: HH:MM:SS .一般不会只存入时间,会存入整个 日期+时间。 不常用。
三.三 Date
1 .只存入日期, 不存入时间。
2 .存储格式是: YYYY-MM-DD
3 . 在插入数据的时候,要注意格式是否符合。
可以插入: YYYY-MM-DD, YYYYMMDD, YY-MM-DD, YYMMDD 四种形式。
如插入数据时, 可以直接 插入 ‘2019-11-14’,‘20191114’ 属性值,但不能插入 ‘2019年11月14日’。 后者想要插入时,可以使用 to_date() 函数进行转换。
Date 类型很常用。
三.四 DateTime
1 .既存入日期,也存入时间。
2 .存入的格式是: YYYY-MM-DD HH:MM:SS
3 . 在插入数据的时候,要注意格式是否符合。
可以插入 : YYYY-MM-DD HH:MM:SS , YYYYMMDDHHMMSS, YY-MM-DD HH:MM:SS, YYMMDDHHMMSS 四种形式。
4 . 输入什么,就存储什么,与时区无关。
三.五 TimeStamp
1 .TimeStamp, 时间戳, 可以存入日期和时间。
2 .存入的格式与 dateTime 相同。但timeStamp 只占用了4个字节,所能存入的范围是 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07, 所以要想存入 2038年之后的日期数据,就不能使用 timestamp了。
3 .以 UTC 格式进行存储, 存储时对当前时区进行转换, 检索时再转换为当前时区。 在查询的时候,即使存入的是相同的日期时间值, 也会因为时区的不同,而显示不同的时间。
如创建一个表, 类型是 timestamp, 存入的是当前的日期值, 然后改变时区,再次查询。 (关于表的操作,下一章节会详细讲解)
(默认已经 开启了数据库服务,并且连接了数据库)
3.1 . 使用 yuejl 数据库
3.2 . 创建 表t , 里面有一个 n的字段, 是timestamp 类型
3.3 . 插入当前的日期数据
3.4 . 查询一下值,当前的时区是 上海,东八区。
3.5 . 更改一下时区,为东九区, 日本时间。 set time_zone=’+09:00’;
3.6 . 再次查询,以东九区进行查询
发现,相同的时间,在检索查询时,竟然变了。
3.7 . 重新更改为 东八区。 set time_zone=’+08:00’;
4 . 当插入一条记录时,没有指定 timestamp的列值的话,会自动将当前时间设置为属性值。 所以,当插入记录同时插入当前时间的话,用它是方便的。 同时,在空间上也比datetime更有效。