1. 程式人生 > >MySQL資料型別 YEAR和TIME

MySQL資料型別 YEAR和TIME

YEAR型別佔用1位元組,並且在定義時可以指定顯示的寬度為YEAR(4)或YEAR(2),例如:
mysql> CREATE TABLE t ( a YEAR(2));
Query OK, 0 rows affected (0.05 sec)

mysql> INSERT INTO t SELECT '1990';

mysql> SELECT * FROM t;
+------+
| a    |
+------+
|   90 |
+------+
1 row in set (0.00 sec)

對於YEAR(4),其顯示年份的範圍為1901~2155;對於YEAR(2),其顯示年份的範圍為1970~2070。
在YEAR(2)的設定下,00~69代表2000~2069年。

TIME型別佔用3位元組,顯示的範圍為“-838:59:59”~“838:59:59”。有人會奇怪為什麼TIME型別的時間可以大於23。
因為TIME型別不僅可以用來儲存一天中的時間,也可以用來儲存時間間隔,同時這也解釋了為什麼TIME型別也可以存在負值。
和DATETIME型別一樣,TIME型別同樣可以顯示微秒時間,但是在插入時,資料庫同樣會進行截斷操作,例如:
mysql> CREATE TABLE t ( a TIME );
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO t SELECT '14:40:20.123456';
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM t;
+----------+
| a        |
+----------+
| 14:40:20 |
+----------+

1 row in set (0.00 sec)