日付には 1000 から 9999 までの値が格納されるため、1970 年より前の日付を処理するには日付型を使用する必要があります。日付型は、時間の目的ではなく、日付部分のみを処理する必要がある場合に使用できます。
MySQL は次の形式でデータを提供します。形式は次のとおりです -
‘YYYY-MM-DD’
開始日の範囲は次のとおりです -
1000-01-01
終了日の範囲は次のとおりです -
9999-12-31
上で説明した内容を理解するには, 2つのテーブルを作成しましょう。最初のテーブルを作成するクエリは次のとおりです。 -
mysql> create table DateDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> DateBefore1970 date -> ); Query OK, 0 rows affected (0.71 sec)
これで、insert コマンドを使用してテーブルにレコードを挿入できるようになります。 「9999-12-31」の終わりを超える日付を使用すると、日付は「0000-00-00」になります。
「9999-12-31」より大きいレコードを挿入してみましょう。クエリは次のとおりです。 -
mysql> insert into DateDemo(DateBefore1970) values('1000-10-20'); Query OK, 1 row affected (0.17 sec) mysql> insert into DateDemo(DateBefore1970) values('1940-12-31'); Query OK, 1 row affected (0.20 sec) mysql> insert into DateDemo(DateBefore1970) values('1500-01-25'); Query OK, 1 row affected (0.10 sec) mysql> insert into DateDemo(DateBefore1970) values('1900-04-14'); Query OK, 1 row affected (0.12 sec) mysql> insert into DateDemo(DateBefore1970) values('1710-11-15'); Query OK, 1 row affected (0.17 sec) mysql> insert into DateDemo(DateBefore1970) values('9999-12-31'); Query OK, 1 row affected (0.22 sec) mysql> insert into DateDemo(DateBefore1970) values('10000-12-31'); Query OK, 1 row affected, 1 warning (0.11 sec)
これで、select ステートメントを使用してテーブル内のすべてのレコードを表示できるようになります。クエリは次のとおりです -
mysql> select *from DateDemo;
以下は出力です -
+----+----------------+ | Id | DateBefore1970 | +----+----------------+ | 1 | 1000-10-20 | | 2 | 1940-12-31 | | 3 | 1500-01-25 | | 4 | 1900-04-14 | | 5 | 1710-11-15 | | 6 | 9999-12-31 | | 7 | 0000-00-00 | +----+----------------+ 7 rows in set (0.00 sec)
以上がMySQL で 1970 年より前の日付を処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。