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

ทำงานกับวันที่ก่อนปี 1970 ใน MySQL หรือไม่


คุณต้องใช้ประเภทวันที่เพื่อทำงานกับวันที่ก่อนปี 1970 เนื่องจากวันที่เก็บค่าตั้งแต่ 1,000 ถึง 9999 คุณสามารถใช้ประเภทวันที่เมื่อคุณต้องการทำงานกับส่วนวันที่เท่านั้น ไม่ใช่เพื่อวัตถุประสงค์ด้านเวลา

MySQL ให้ข้อมูลในรูปแบบต่อไปนี้ โดยมีรูปแบบดังนี้ −

'ปปปป-ดด-วว'

ช่วงวันที่เริ่มต้นมีดังนี้ −

1000-01-01

ช่วงวันที่สิ้นสุดมีดังนี้ −

9999-12-31

เพื่อให้เข้าใจสิ่งที่เรากล่าวถึงข้างต้น ให้เราสร้างสองตาราง แบบสอบถามเพื่อสร้างตารางแรกมีดังนี้ −

mysql> สร้างตาราง DateDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> DateBefore1970 date -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.71 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก เมื่อใดก็ตามที่คุณใช้เกินวันที่สิ้นสุด '9999-12-31' คุณจะได้รับวันที่ '0000-00-00'

ให้เราใส่ระเบียนที่มากกว่า '9999-12-31' แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า DateDemo(DateBefore1970) ('1000-10-20'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DateDemo (DateBefore1970) ('1940-12-31');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า DateDemo (DateBefore1970) ('1500-01-25'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DateDemo (DateBefore1970) ( '1900-04-14');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DateDemo (DateBefore1970) ('1710-11-15'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DateDemo(DateBefore1970) ('9999-12-31'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า DateDemo (DateBefore1970) ('10000-12-31'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ 1 คำเตือน (0.11 วินาที)

ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก DateDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+---+----------------+| รหัส | 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 แถวในชุด (0.00 วินาที)