在MySQL中,日期和時間的數據類型很重要。可以使用DATE、DATETIME、TIMESTAMP、TIME和YEAR等數據類型來表示日期和時間。
DATE數據類型: 日期數據類型用于表示日期值。它可以存儲YYYY-MM-DD格式的日期,其中YYYY表示4位數的年份,MM表示月份,DD表示日期。日期的范圍是0000-01-01到9999-12-31。 示例: CREATE TABLE students ( id INT, name VARCHAR(30), birthdate DATE ); INSERT INTO students VALUES (1, 'Tom', '1995-12-18'); DATETIME數據類型: DATETIME數據類型用于表示日期和時間值。它可以存儲YYYY-MM-DD HH:MM:SS格式的日期和時間,其中YYYY表示4位數的年份,MM表示月份,DD表示日期,HH表示24小時制的小時,MM表示分鐘,SS表示秒。日期的范圍是1000-01-01到9999-12-31。 示例: CREATE TABLE orders ( id INT, customer_id INT, orderdate DATETIME ); INSERT INTO orders VALUES (1, 1001, '2022-11-23 10:23:45'); TIMESTAMP數據類型: TIMESTAMP數據類型用于表示日期和時間值。它可以存儲YYYY-MM-DD HH:MM:SS格式的日期和時間,其中YYYY表示4位數的年份,MM表示月份,DD表示日期,HH表示24小時制的小時,MM表示分鐘,SS表示秒。日期的范圍是1970-01-01到2038-01-19。它與DATETIME數據類型相似,但使用的存儲方式不同。 示例: CREATE TABLE messages ( id INT, sender_id INT, receiver_id INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); INSERT INTO messages VALUES (1, 1001, 2002, NOW()); TIME數據類型: TIME數據類型用于表示時間值。它可以存儲HH:MM:SS格式的時間,其中HH表示24小時制的小時,MM表示分鐘,SS表示秒。時間的范圍是-838:59:59到838:59:59。 示例: CREATE TABLE tasks ( id INT, name VARCHAR(30), start_time TIME, end_time TIME ); INSERT INTO tasks VALUES (1, 'Write code', '09:00:00', '12:00:00'); YEAR數據類型: YEAR數據類型用于表示年份值。它可以存儲2位數的年份值(范圍從70到69)和4位數的年份值(范圍從1901到2155)。 示例: CREATE TABLE employees ( id INT, name VARCHAR(30), birth_year YEAR(4), join_year YEAR(4) ); INSERT INTO employees VALUES (1, 'John', '1995', '2020');
DATE、DATETIME、TIMESTAMP、TIME和YEAR等數據類型都可以用來存儲日期和時間值,但不同的數據類型適用于不同的場景。根據實際情況來選擇合適的數據類型可以更好地節省空間和提高查詢效率。