mysql中year函数算年龄_MySQL中的YEAR函数
一般這樣認為 YEAR類型占用1個字節,并且在定義時可以指定顯示的寬度為YEAR(4)或者YEAR(2),不過從MySQL5.6.6開始,YEAR(2)類型被自動裝換為YEAR(4),YEAR(2)類型被禁用。
(一)YEAR(2)類型被自動裝換為YEAR(4)
mysql>drop table if exists t;
Query OK,0 rows affected (0.01 sec)
mysql>create table t(a year(2));
Query OK,0 rows affected, 1 warning (0.00 sec)
mysql>show warnings\G;
***************************1. row ***************************
Level: Warning
Code: 1818
Message:YEAR(2) column type is deprecated. Creating YEAR(4) column instead.
1 row inset (0.00 sec)
ERROR:
No queryspecified
mysql>explain t;
+-------+---------+------+-----+---------+-------+
| Field |Type??? | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| a???? | year(4) | YES? |???? |NULL??? |?????? |
+-------+---------+------+-----+---------+-------+
1 row inset (0.00 sec)
mysql>insert into t select ‘14‘;
Query OK,1 row affected (0.00 sec)
Records:1? Duplicates: 0? Warnings: 0
mysql>select * from t;
+------+
| a??? |
+------+
| 2014 |
+------+
1 row inset (0.00 sec)
mysql>
(二)存在當前表中的YEAR(2)類型仍舊作為YEAR(2)存在和處理,但是下面幾種方式會自動轉換為YEAR(4):
(1)alter表
alter table語句與導致重建表:
mysql> alter table t modify a year(2);
Query OK, 0 rows affected, 1 warning (0.00 sec)
Records: 0 ?Duplicates: 0 ?Warnings: 1
mysql> explain t;
+-------+---------+------+-----+---------+-------+
| Field | Type ? ?| Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| a ? ? | year(4) | YES ?| ? ? | NULL ? ?| ? ? ? |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
mysql> alter table t modify a year(2);
Query OK, 0 rows affected, 1 warning (0.01 sec)
Records: 0 ?Duplicates: 0 ?Warnings: 1
mysql> show warnings;
+---------+------+---------------------------------------------------------------------+
| Level ? | Code | Message ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+---------+------+---------------------------------------------------------------------+
| Warning | 1818 | YEAR(2) column type is deprecated. Creating YEAR(4) column instead. |
+---------+------+---------------------------------------------------------------------+
1 row in set (0.01 sec)
(2)PEAIR TABLE
如果check table時,數據庫發現一張表中包含YEAR(2)列,就推薦使用YEAR(4)。
(3)mysql_upgrade
這個用于REPAIR TABLE的情況。
(4)在dump文件和重新裝載dump文件時,被影響的數據值都會在dump和裝載時存在潛在的影響。
總結
以上是生活随笔為你收集整理的mysql中year函数算年龄_MySQL中的YEAR函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实例理解月末结账任务中,重估未结外币余额
- 下一篇: html日期函数,YEAR 函数 (时间