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

เมื่อรัน UPDATE … datetime =NOW(); แถวทั้งหมดที่อัปเดตจะมีวันที่/ เวลาเดียวกันใน mysql หรือไม่


ฟังก์ชัน now() คืนค่าเวลาคงที่ที่แสดงเวลาที่คำสั่งเริ่มดำเนินการ ฟังก์ชัน sysdate() จะคืนค่าวันที่และเวลาเดียวกันกับที่เรียกใช้คำสั่งจาก MySQL 5.0.13

สมมติว่าคุณกำลังอัปเดต datetime ด้วย now() ในทริกเกอร์หรือกระบวนงานที่เก็บไว้ วิธีการ now() จะคืนค่าเวลาที่กระบวนการทริกเกอร์และการจัดเก็บเริ่มทำงาน

นี่คือตัวอย่างการอัปเดตด้วย now() ให้เราสร้างตารางก่อน แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง NowDemo-> (-> DueDateTime datetime-> ); สืบค้นตกลง 0 แถวได้รับผลกระทบ (0.51 วินาที)

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

mysql> แทรกลงในค่า NowDemo ('2018-12-19'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า NowDemo ('2018-11-10'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า NowDemo ('2017-11-21'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.09 วินาที)

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

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

ผลลัพธ์

<ก่อนหน้า>+---------------------+| DueDateTime |+--------------------+| 2018-12-19 00:00:00 || 2018-11-10 00:00:00 || 2017-11-21 00:00:00 |+---------------------+3 แถวในชุด (0.00 วินาที)

นี่คือข้อความค้นหาที่จะอัปเดตคอลัมน์วันที่และเวลาด้วย now() ซึ่งจะอัปเดตค่าทั้งหมด

กรณีที่ 1 − ใช้ตอนนี้()

แบบสอบถามมีดังนี้ −

mysql> อัปเดต NowDemo set DueDateTime =now();Query OK, 3 แถวได้รับผลกระทบ (0.12 วินาที) แถวที่ตรงกัน:3 เปลี่ยน:3 คำเตือน:0

ตรวจสอบค่าที่อัพเดตโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

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

ต่อไปนี้เป็นผลลัพธ์ที่แสดงแถวทั้งหมดที่มีวันที่และเวลาเดียวกัน -

<ก่อนหน้า>+---------------------+| DueDateTime |+--------------------+| 2018-12-20 16:10:00 || 2018-12-20 16:10:00 || 2018-12-20 16:10:00 |+---------------------+3 แถวในชุด (0.00 วินาที)

กรณีที่ 2 – การใช้ sysdate()

แบบสอบถามมีดังนี้ −

mysql> อัปเดต NowDemo set DueDateTime =sysdate(); แบบสอบถามตกลง ได้รับผลกระทบ 3 แถว (0.43 วินาที) แถวที่ตรงกัน:3 เปลี่ยน:3 คำเตือน:0

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

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

ต่อไปนี้เป็นผลลัพธ์ที่แสดงแถวทั้งหมดที่มีวันที่และเวลาเดียวกัน -

<ก่อนหน้า>+---------------------+| DueDateTime |+--------------------+| 2018-12-20 16:10:35 || 2018-12-20 16:10:35 || 2018-12-20 16:10:35 |+---------------------+3 แถวในชุด (0.00 วินาที)