首页 > MySQL > MySQL 那些你不知道的 数据类型 日期和时间类型
2009四月7

MySQL 那些你不知道的 数据类型 日期和时间类型

首先声明一下,MySQL,那些你不知道的系统教程主要参考《MySQL完全手册》。写此文主要是为了让自己不太好用的脑袋瓜子可以更加注意这些细节,因为最短的板决定你的成长程度。

MySQL用DATE和YEAR类型描述简单的日期值,而使用TIME类型描述时间值。这些值可以描述为字符串或不带分隔符的整数序列(就是时间戳)。如果描述为字符串,DATE类型的值应该使用连字号作为分隔符分隔开,而TIME类型值应该使用冒号作为分隔符分隔开。

CREATE TABLE data (birthday DATE);
INSERT INTO data VALUES ('2009-04-07'),(20090407);
SELECT birthday FROM data;

结果都是”2009-04-07″,不用看我,MySQL默认分隔的,不关我的事。。

并且会默认用冒号分隔时间值。例如

DROP TABLE data;
CREATE TABLE data (showtime TIME);
INSERT INTO data VALUES('12:30:56'),('12:30'),(123056);
SELECT showtime FROM data;

查询结果为“12:30:56″,”12:30:00″,”12:30:56″.

没有冒号分隔符的TIME类型值可能会被MySQL解释为持续时间,而不是时间戳。

INSERT INTO data VALUES(1230);

结果为 “00:12:30″

MySQL还对日期的年份中的两个数字的值,或是语句为YEAR类型的输入字段中的两个数字输入执行这种类型的最大限度的通译。因为所有的YEAR类型的值必须用4个数字来存储,所有MySQL试图根据值的数字范围把两个数字的年份值转换为4个数字的值:把在00~69范围内的值转换到2000~2069范围内,而把70~99范围内的值转换到1970~1979之内。

DATETIME是DATE与TIME的组合(DATE前为-分隔和TIME间有空格,TIME中间用冒号分隔),TIMESTAMP是时间戳,一串数字。相当于PHP的time()。

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/04/07/82/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

One Response to “MySQL 那些你不知道的 数据类型 日期和时间类型”

  1. #1 TaoGOGO 回复 | 引用 Post:2010-10-15 18:20

    既然是data类型,Mysql就会自动做处理啦,嘿嘿,是纯学习下

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)