【MySQL資料型別2之--日期時間型別】

feixianxxx發表於2010-05-14

MySQL日期時間型別大致可以分成(5.0版本)

DATE:4位元組 1000-01-01 ----9999-12-31

TIME:3位元組 -839:59:59 -----839:59:59

YEAR:1位元組 1901-----2155

DATETIME:8位元組 1000-01-01 00:00:00 -------- 9999-12-31 23:59:59

TIMESTAMP:4位元組 19700101080001 -------2038年某個時刻

 

使用小例:

 

1.DATE、TIME、DATETIME的簡單使用

mysql>create table test(t1 date,t2 time,t3 datetime);

mysql>insert test values(now(),now(),now());

mysql> select * from test;

+------------+----------+---------------------+

| t1         | t2       | t3                  |

+------------+----------+---------------------+

| 2010-05-14 | 15:55:38 | 2010-05-14 15:55:38 |

+------------+----------+---------------------+

 

2.YEAR的範圍應用

mysql> create table test2(t year);

mysql> insert test2 values(02),(89);

mysql> select * from test2;

+------+

| t    |

+------+

| 2002 |

| 1989 |

+------+

 

在插入年份遇到2位數的時候,因為存在年份重疊,有如下規定:00--69 表示 2000-2069

70-99 表示 1970-1999

 

 

 

3.TIMESTAMP的使用

create table test3(value int,t1 timestamp,t2 timestamp);

insert test3 values(1,null,null);

mysql> select * from test3;

+-------+---------------------+---------------------+

| value | t1                  | t2                  |

+-------+---------------------+---------------------+

|     1 | 2010-05-14 16:06:52 | 2010-05-14 16:06:52 |

+-------+---------------------+---------------------+

insert test3 values(2,default,default);

mysql> select * from test3;

 

+-------+---------------------+---------------------+

| value | t1                  | t2                  |

+-------+---------------------+---------------------+

|     1 | 2010-05-14 16:06:52 | 2010-05-14 16:06:52 |

|     2 | 2010-05-14 16:07:30 | 0000-00-00 00:00:00 |

+-------+---------------------+---------------------+

 

注意這裡的第二個TIMESTAMP欄位預設值為0而且它不可以將預設值設定為CURRENT_TIMESTAMP,因為在它之前已經有一個一樣型別的欄位了。

注意:timestamp屬性的欄位插入和顯示的值會轉化成本地時區的時間。

先改變本機時區

mysql> set time_zone='+9:00';

mysql> select * from test3;

+-------+---------------------+---------------------+

| value | t1                  | t2                  |

+-------+---------------------+---------------------+

|     1 | 2010-05-14 17:06:52 | 2010-05-14 17:06:52 |

|     2 | 2010-05-14 17:07:30 | 0000-00-00 00:00:00 |

+-------+---------------------+---------------------+

跟上面的現實相比 你會發現 時間值延後了一個小時,因為東九區比東八區快了一個小時

mysql> set time_zone='+8:00';

 

 

 

 

                                       

                                         參考文獻:深入淺出MYSQL(網易)

相關文章