ホームページ >データベース >mysql チュートリアル >MySQL で 2 桁の年の日付値を使用することが推奨されないのはなぜですか?

MySQL で 2 桁の年の日付値を使用することが推奨されないのはなぜですか?

PHPz
PHPz転載
2023-09-06 20:25:021414ブラウズ

为什么在 MySQL 中使用两位数年份的日期值不是一个好习惯?

ご存知のとおり、YEAR(2) は年を 2 桁の形式で保存します。たとえば、69 と書くと、1969 年が年として保存されます。 YEAR(2)には、1970年から2069年(70年から69年)までの年を指定できます。

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

  • 00 ~ 69 の範囲の年の値は、2000 ~ 2069 に変換されます。
  • 70 ~ 99 の範囲の年の値は 1970 ~ 1999 に変換されます。
  • ul>

    日付値を 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)

    「val」に 00 を格納すると、「1900」というどの年を参照しているのかがわかりません。または「2000」。 MySQL はこれを 2000 年として解釈します。

以上がMySQL で 2 桁の年の日付値を使用することが推奨されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。