Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การทำงานกับวันที่ก่อนปี 1970 ใน MySQL ใช้ DATE Type

ใช้ชนิดข้อมูล DATE สำหรับวันที่ก่อนปี 1970 เพราะ DATE รองรับช่วง 1000-01-01 ถึง 9999-12-31

ช่วงวันที่ที่รองรับ

  • เริ่มต้น: 1000-01-01
  • สิ้นสุด: 9999-12-31
  • รูปแบบ: YYYY-MM-DD

ไม่เหมาะกับ TIMESTAMP (รองรับแค่ 1970-2038)

ตัวอย่างการใช้งาน

สร้างตาราง:

mysql> create table DateDemo (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> DateBefore1970 date
    -> );
Query OK, 0 rows affected (0.71 sec)

เพิ่มข้อมูลวันที่ต่างๆ:

mysql> insert into DateDemo(DateBefore1970) values('1000-10-20');
mysql> insert into DateDemo(DateBefore1970) values('1940-12-31');
mysql> insert into DateDemo(DateBefore1970) values('1500-01-25');
mysql> insert into DateDemo(DateBefore1970) values('1900-04-14');
mysql> insert into DateDemo(DateBefore1970) values('1710-11-15');
mysql> insert into DateDemo(DateBefore1970) values('9999-12-31');
mysql> insert into DateDemo(DateBefore1970) values('10000-12-31');  -- เกินขอบเขต

ผลลัพธ์ (แถวสุดท้ายเกินขอบเขตกลายเป็น 0000-00-00):

+----+----------------+
| 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     |
+----+----------------+

สรุป: ใช้ DATE สำหรับวันที่ในอดีตหรืออนาคตไกล DATETIME ก็ได้แต่ใช้พื้นที่มากกว่า