คำตอบที่ถูกต้องคือSYSDATE ()
INSERT INTO servers (
server_name, online_status, exchange, disk_space,
network_shares, date_time
)
VALUES (
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE', SYSDATE()
);
เราสามารถเปลี่ยนพฤติกรรมนี้และทำให้NOW()
ทำงานในลักษณะเดียวกับที่SYSDATE()
โดยการตั้งค่าsysdate_is_nowTrue
อาร์กิวเมนต์บรรทัดคำสั่ง
โปรดทราบว่าNOW()
(ซึ่งมีCURRENT_TIMESTAMP()
นามแฝง) แตกต่างจากSYSDATE()
ในทางที่ลึกซึ้ง :
SYSDATE () ส่งคืนเวลาที่ดำเนินการ สิ่งนี้แตกต่างจากลักษณะการทำงานสำหรับ NOW () ซึ่งส่งคืนเวลาคงที่ที่ระบุเวลาที่คำสั่งเริ่มทำงาน (ภายในฟังก์ชั่นหรือทริกเกอร์ที่เก็บไว้ตอนนี้ () จะคืนค่าเวลาที่คำสั่งฟังก์ชั่นหรือการเรียกใช้เริ่มทำงาน)
ตามที่ระบุโดยErandi วิธีที่ดีที่สุดคือสร้างตารางของคุณด้วยส่วนDEFAULT
คำสั่งเพื่อให้คอลัมน์ได้รับการเติมโดยอัตโนมัติด้วยการประทับเวลาเมื่อคุณแทรกแถวใหม่:
date_time datetime NOT NULL DEFAULT SYSDATE()
หากคุณต้องการวันที่ปัจจุบันในยุครูปแบบแล้วคุณสามารถใช้UNIX_TIMESTAMP () ตัวอย่างเช่น:
select now(3), sysdate(3), unix_timestamp();
จะให้ผลผลิต
+-------------------------+-------------------------+------------------+
| now(3) | sysdate(3) | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 | 1543282808 |
+-------------------------+-------------------------+------------------+
ที่เกี่ยวข้อง: