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

คอลัมน์วันที่ของ MySQL เติมอัตโนมัติด้วยวันที่ปัจจุบัน?


คุณสามารถใช้ now() กับการป้อนอัตโนมัติเริ่มต้นและวันที่และเวลาปัจจุบันสำหรับสิ่งนี้ หลังจากนั้น คุณสามารถแยกส่วนของวันที่โดยใช้ฟังก์ชัน date()

กรณีที่ 1:

ไวยากรณ์มีดังนี้:

yourDateColumnName เริ่มต้นวันที่ 'yourDateValue';

กรณีที่ 2:

ไวยากรณ์มีดังนี้:

yourDateColumnName datetime default now();

เพื่อให้เข้าใจข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง DefaultCurrentdateDemo -> ( -> LoginDate datetime default () -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.59 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> แทรกลงในค่า DefaultCurrentdateDemo (); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DefaultCurrentdateDemo ('2017-11-19'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DefaultCurrentdateDemo ('2018-10-21'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DefaultCurrentdateDemo (); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า DefaultCurrentdateDemo ( '2020-12-24');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.12 วินาที)

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

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

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

<ก่อนหน้า>+---------------------+| วันที่เข้าสู่ระบบ |+---------------------+| 2019-01-12 20:33:51 || 2017-11-19 00:00:00 || 2018-10-21 00:00:00 || 2019-01-12 20:34:37 ​​|| 2020-12-24 00:00:00 |+---------------------+5 แถวในชุด (0.00 วินาที)

หากคุณต้องการแยกเฉพาะวันที่ ให้ใช้เมธอด date() แบบสอบถามมีดังนี้:

mysql> เลือกวันที่ (LoginDate) เป็น OnlyDate จาก DefaultCurrentdateDemo;

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

<ก่อนหน้า>+-----------+| OnlyDate |+-----------+| 2019-01-12 || 2017-11-19 || 2018-10-21 || 2019-01-12 || 2020-12-24 |+------------+5 แถวในชุด (0.00 วินาที)

ให้เราตั้งค่าเริ่มต้นกับบางวันที่

แบบสอบถามเพื่อสร้างค่าเริ่มต้นเป็นคอลัมน์วันที่มีดังนี้:

mysql> สร้างตาราง DefaultDate -> ( -> วันที่เข้าสู่ระบบเริ่มต้น '2019-01-12' -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.53 วินาที)

หากคุณไม่ส่งค่าใดๆ ไปยังคอลัมน์ ค่าเริ่มต้นจะถูกส่งไปยังคอลัมน์ แบบสอบถามที่จะแทรกบันทึกมีดังนี้:

mysql> แทรกลงใน DefaultDate values(); Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้

เลือกคำสั่ง แบบสอบถามมีดังนี้:

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

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

<ก่อนหน้า>+-----------+| วันที่เข้าสู่ระบบ |+-----------+| 2019-01-12 |+------------+1 แถวในชุด (0.00 วินาที)