MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのYEAR(2)とYEAR(4)の違いは何ですか?


YEAR(2)は、年を2桁の形式で格納します。たとえば、1969を1年に保存するために69と書くことができます。 YEAR(2)では、1970年から2069年(70年から69年)まで年を指定できます。

YEAR(4)は、年を4桁の形式で格納します。たとえば、1969年を1年として格納するには、19669と書く必要があります。 YEAR(4)では、1901年から2155年までの年を指定できます。

MySQLは、次のルールを使用して2桁の年の値を解釈します。

  • 変動00〜69内の年の値は2000〜2069に変換されます。
  • 70〜99の範囲の年の値は1970〜1999に変換されます。

日付の値を2桁の形式で保存することはできません。この形式で保存される値は、世紀が不明であるためにあいまいになるためです。

次のMySQLの例を使用すると、より明確に理解できます-

mysql> Create Table year_test(val year(2));
Query OK, 0 rows affected, 1 warning (0.23 sec)

mysql> insert into year_test(val) values('70');
Query OK, 1 row affected (0.14 sec)

mysql> insert into year_test(val) values('00');
Query OK, 1 row affected (0.06 sec)
mysql> select * from year_test;
+------+
| val  |
+------+
| 70   |
| 00   |
+------+
2 rows in set (0.00 sec)

mysql> select * from year_test where val = '1970';
+------+
| val  |
+------+
| 70   |
+------+
1 row in set (0.03 sec)

mysql> select * from year_test where val = '2000';
+------+
| val  |
+------+
| 00   |
+------+
1 row in set (0.00 sec)

mysql> select * from year_test where val = '1900';
Empty set (0.06 sec)

00を「val」に格納することにより、「1900」または「2000」のどちらの年を暗示するかは不明です。 MySQLはそれを2000年と解釈しています。


  1. MySQLでは、!=NULLとISNOT NULLの違いは何ですか?

    値を!=NULLと比較すると、NULLが返されます。したがって、!=NULLは無意味です。 !=NULLとISNOT NULLの違いを確認するために、最初にテーブルを作成しましょう。 まずテーブルを作成しましょう- mysql> create table DemoTable1970    (    Value int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa

  2. CとC++の違いは何ですか?

    以下はCとC++の違いの一部です。 C ++と比較すると、CはC++のサブセットです。有効なCプログラムはすべて有効なC++プログラムです。 Cは構造型または手続き型プログラミング言語ですが、C++はオブジェクト指向プログラミング言語です。 Cでは、関数が基本的な構成要素ですが、C ++では、オブジェクトが基本的な構成要素です。 Cには変数参照がありませんが、C++には変数参照があります。 Cはメモリ割り当てにmallocとfreeを使用し、C++はメモリ割り当てにnewとdeleteを使用します。 Cはエラー処理を直接サポートしていませんが、C++はエラー検出とスムーズな処理に