它看起來像你有兩個表,只有2個不同的列。把它全部放在一張桌子裏將是一個更好的做法。但是,如果您確實希望保留表格,這就是您的模式應該看起來像
請確保您的預訂時間類型爲datetime
,time
或timestamps
。就你而言,它看起來像你正在使用時間戳選擇器。
CREATE TABLE reservation(
reservation_id INT PRIMARY KEY AUTO_INCREMENT,
reservation_name VARCHAR(10)
);
CREATE TABLE seat_reserved(
reservation_id INT,
reservation_time TIMESTAMP
);
確保您將正確的數據插入到表格中。
INSERT INTO reservation(reservation_name)
VALUES("George"), ("Roger"), ("John"), ("Lucas");
INSERT INTO seat_reserved(reservation_id, reservation_time)
VALUES(1, "2016-03-08 17:00:00"),
(2, "2016-03-08 18:00:00"),
(3, "2016-03-08 19:30:00"),
(4, "2016-03-08 12:00:00");
注意我們插入到reservation_time
列的值。
數據類型timestamps
以24小時格式返回日期和時間。
要選擇時間戳數據類型的時間部分,可以使用TIME
函數。
http://www.techonthenet.com/access/functions/date/time.php
SELECT RESERVATION.Reservation_ID, SEAT_RESERVED.Reservation_Time
FROM RSERVATION
INNER JOIN SEAT_RESERVED ON RESERVATION.Reservation_ID = SEAT_RESERVED.Reservation_ID
WHERE TimeValue(SEAT_RESERVED.RESERVATION_TIME) BETWEEN #18:00:00# AND #23:59:00#
我也去掉了timestamps
部分在WHERE子句中,因爲這是不正確的語法。
我創建了一個搗鼓你與
http://sqlfiddle.com/#!9/83bcf5/6/0
請解釋你的WHERE條款。什麼是'時間戳記'? –
錯誤在您的WHERE子句中。時間戳SEAT_RESERVED ...等沒有任何意義。 – Duston