MySQL บันทึกเวลา :
ถูกเก็บไว้ในUTC
ข้อมูลเหล่านี้จะถูกแปลงเป็น UTC ในที่เก็บข้อมูลและแปลงกลับเป็นโซนเวลาของคุณเมื่อรับข้อมูล หากคุณเปลี่ยนการตั้งค่าเขตเวลาค่าที่ดึงมาก็จะเปลี่ยนไป
สามารถเริ่มต้นและอัพเดทได้โดยอัตโนมัติ
คุณสามารถตั้งค่าเริ่มต้นและ / หรือค่าการอัปเดตอัตโนมัติเป็น CURRENT_TIMESTAMP
มีช่วงของ1970-01-01 00:00:01 UTC
การ2038-01-19 03:14:07 UTC
ในขณะที่ MySQL datetime :
สิ่งที่คุณเก็บไว้คือสิ่งที่คุณได้รับ™
มีช่วงของ1000-01-01 00:00:00
การ9999-12-31 23:59:59
ค่าที่อยู่นอกช่วงอาจทำงานได้ แต่รับประกันเฉพาะค่าภายในช่วงที่จะทำงาน
คุณสามารถจัดเก็บวันที่ซึ่งวันหรือเดือนเป็นศูนย์
นี่เป็นวิธี MySQL ในการจัดเก็บวันเกิด! คุณไม่สามารถทำเช่นนั้นกับมีข้อยกเว้นเพียงเป็นค่าเป็นศูนย์ของTIMESTAMP
0000-00-00
คุณสามารถจัดเก็บวันที่ไม่ถูกต้องหากต้องการในโหมดALLOW_INVALID_DATES
คุณสามารถตั้งค่าเริ่มต้นNOW()
ในบางกรณี TIMESTAMP
แต่วิธีที่นิยมและเป็นธรรมชาติมากขึ้นนับจากวันที่เริ่มต้นใช้งานโดยอัตโนมัติและมีการปรับปรุงคือ
และแน่นอนว่ายังมีDATE
และTIME
ที่ทำงานเหมือนDATETIME
แต่แน่นอนDATE
ไม่สนใจเวลาและTIME
ไม่สนใจวันที่ ทั้งสี่ชนิดข้อมูลทำงานอย่างสมบูรณ์แบบด้วยหลากหลายของวันที่และเวลาการทำงานแต่เมื่อคุณกำลังผสมชนิดข้อมูลที่คุณควรจะตระหนักถึงผลกระทบการแปลง
ตอนนี้สำหรับคำถามของคุณ: คุณควรใช้DATETIME
ทุกที่ ไม่ใช่ด้วยเหตุผลทางเทคนิค แต่เนื่องจากคุณยังไม่ชัดเจนว่า MySQL ทำงานอย่างไรDATETIME
เป็นตัวเลือกที่ง่ายกว่า นี่จะหมายความว่าคุณจะต้องคำนวณการประทับเวลาปัจจุบันใน PHP ก่อนจัดเก็บนั่นเป็นเรื่องง่ายเหมือน:
$mysqldate = date("Y-m-d H:i:s");
ฟังก์ชั่นวันที่ของ PHP ทำงานเช่น:
string date ( string $format [, int $timestamp = time() ] )
"Y-m-d H:i:s"
รูปแบบเป็นหนึ่งที่เข้ากันได้กับ MySQL และโดยออกพารามิเตอร์ตัวที่สองที่ว่างเปล่าdate()
เรียกร้องtime()
ที่จะได้รับในปัจจุบันเวลาในยูนิกซ์
การใช้ a TIMESTAMP
แทนที่จะเป็น a DATETIME
จะเป็นการเพิ่มมูลค่าให้กับ MySQL ที่รับผิดชอบในการตัดสินใจเกี่ยวกับการประทับเวลาปัจจุบันและคุณสามารถข้ามเขตข้อมูลเมื่อคุณกำลังแทรก / อัปเดต แต่เนื่องจากคุณกำลังส่งแบบสอบถามและรหัสเพื่อรับการประทับเวลาปัจจุบันใน PHP มีเพียงเล็กน้อยคุณจึงสามารถไปได้DATETIME
ทุกอย่างอย่างปลอดภัย
สำหรับโค้ดจริงที่จะเก็บการประทับเวลาของ PHP ลงในฐานข้อมูลคุณควรดูที่PHP Data Objectsและหากคุณยังไม่ชัดเจนให้ถามในStackOverflowแทน แต่มีคำถามที่เกี่ยวข้องเกือบ 1.5kอยู่แล้วตรวจสอบให้แน่ใจก่อนที่จะถาม เพียงคำใบ้ที่เตรียมไว้เป็นวิธีที่เด็กเจ๋ง ๆ ทำ