簡體   English   中英

SQL時間戳時間

[英]SQL where time in timestamp

我有類似的記錄:

2017-07-24 16:59:32
2017-07-24 17:53:38
2017-07-24 22:26:08
2017-07-24 23:04:54
2017-07-25 08:33:43
2017-07-25 10:06:47

我想編寫一個sql查詢,僅比較時間戳的時間部分,例如:

SELECT * FROM table WHERE date BETWEEN '17:30:00' and '22:30:00'

僅檢查時間而忽略日期。 有可能這樣做嗎?

我正在使用MySQL

SELECT * FROM table WHERE hour('date') = 9;

需要一個小時,因為有時我只需要半個小時。

這應該工作:

SELECT * FROM table
WHERE
(HOUR(date) BETWEEN 18 AND 21) OR
(HOUR(date) = 17 AND MINUTE(date)>=30) OR
(HOUR(date) = 22 AND MINUTE(date)<=30);

或另一種方法是將其轉換為DATE ,添加小時和分鍾,然后在兩者之間使用。

SELECT * FROM table
WHERE date BETWEEN
ADDDATE(ADDDATE(DATE(date), INTERVAL 17 HOUR), INTERVAL 30 MINUTE)
AND
ADDDATE(ADDDATE(DATE(date), INTERVAL 22 HOUR), INTERVAL 30 MINUTE);

您可以將DATETIME轉換為DATETIME ,並在比較中使用它。

給定示例代碼:

CREATE TABLE Table1
(
  Column1 VARCHAR(50),
  Column2 VARCHAR(50),
  Timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO
Table1
(Column1, Column2, Timestamp)
VALUES
('Valid', 'Time', '2017-01-01 17:43:01'),
('Invalid', 'Time', '2017-01-01 16:00:43');

您可以如下查詢:

SELECT
  *,
  DATE_FORMAT(`timestamp`, '%H:%i:%s') AS Time
FROM
  Table1
WHERE
  DATE_FORMAT(`timestamp`, '%H:%i:%s') BETWEEN '17:30:00' AND '22:30:00';

SQL小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM