之間我有這樣一行:
MySQL的選擇,其中行的內容爲兩個小時
它怎麼可能只得到07:00
和00:00
的結果嗎? 07:00,23:59,在我的情況下00:00。
$query = "SELECT * FROM `".$today."` WHERE hour BETWEEN '07:00' AND '00:00'";
...什麼也沒有返回。
之間我有這樣一行:
MySQL的選擇,其中行的內容爲兩個小時
它怎麼可能只得到07:00
和00:00
的結果嗎? 07:00,23:59,在我的情況下00:00。
$query = "SELECT * FROM `".$today."` WHERE hour BETWEEN '07:00' AND '00:00'";
...什麼也沒有返回。
我認爲它應該更像
SELECT * FROM `".$today."` WHERE hour >= "7:00" AND hour <= "24:00";
這爲我工作反正。存儲
這(與'07:00'代替'7:00'和'「'轉義)返回_06:43_,_07:00_,_00:00_和_00:40_ – user3474451
select *
from tab
where replace(hour,':','')
between '0700' AND '2359'
OR replace(hour,':','') ='0000';
這將返回_06:43_,_07:00_, _00:00_和_00:40_。 – user3474451
好的我修改了它,現在就試試。 – chetan
嚴格地說,替換是不必要的(':'是一個不區分的字符),但是你至少要調用OP的特例。 –
日期爲varchar會使查詢比較它非常困難,應存放在適當datattype。
你的情況的解決方法,即使用VARCHAR存儲的時間,你可以使用的東西作爲
select * from
table_name
where
TIME_FORMAT (
str_to_date (
replace (hour,':',''),'%H%i'
),'%H:%i'
)
between '07:00' AND '23:59';
午夜'00:00'小時,在'WHERE'子句中怎麼樣? –
好點@Ravinder讓我重建代碼。 –
'07:00-00:00'返回0結果,'00:00-07:00'返回_06:43_。我可以改變我的數據類型爲'時間',但我的時間是'G:i'格式。我該怎麼辦? – user3474451
一般似乎有點模糊的問題/數據結構的設置,你就需要如果您參考07:00 - > 00:00或00:00 - > 07:00,請小心。
與TIMESTAMP工作可能會節省大量的頭痛,例如:
CREATE TABLE test(time1 TIMESTAMP, data VARCHAR(20));
INSERT INTO test(time1, data) VALUES('2014-05-09 07:00', 'kala1');
INSERT INTO test(time1, data) VALUES('2014-05-09 06:43', 'kala2');
INSERT INTO test(time1, data) VALUES('2014-05-09 23:59', 'kala3');
INSERT INTO test(time1, data) VALUES('2014-05-10 00:00', 'kala4');
INSERT INTO test(time1, data) VALUES('2014-05-10 00:40', 'kala5');
然後,你可以做這樣的事情
SELECT * FROM test WHERE time1 >= '2014-05-09 07:00' AND time1 <= '2014-05-10 00:00'
根據情況,我們不知道有可用的日期值。不過,它可能會讓他停止使用'00:00'作爲結束時間。 –
是什麼時間的數據類型? –
VARCHAR。我應該使用別的東西嗎? – user3474451
將其更改爲以'time'數據類型,並嘗試 –