2017-01-26 83 views
1
In     Name   Out 
2017-01-01 10:00:00 Sam    2017-01-01 17:00:00 
2017-01-18 10:00:00 James   2017-01-18 12:00:00 
2017-01-18 10:00:00 John   NULL   -> means still in office 

如何找到所有的人誰是在辦公室2017年1月18日11:00:00只爲例子嗎?mysql的檢查,如果用戶在一段時間(如空exisit)

SELECT * FROM Table WHERE '2017-01-08 11:00:00' BETWEEN IN AND OUT 

- >此只返回詹姆斯。 (應該是詹姆斯和約翰)

SELECT * FROM Table WHERE '2017-01-08 11:00:00' BETWEEN IN AND NOW() 

- >這將返回山姆,詹姆斯,約翰(應該是詹姆斯和約翰只)

任何人都可以幫助嗎?不知何故我需要用當前時間戳替換NULL(Out)列。但是使用NOW()會導致BETWEEN語句出現問題。

+1

In是一個糟糕的名字爲列btw – Strawberry

回答

0

試試這個:

SELECT * 
FROM myTable 
WHERE '2017-01-18 11:00:00' BETWEEN `IN` AND COALESCE(`OUT`, NOW()) 

查詢使用COALESCE與當前日期/時間值來代替OUTNULL值。

Demo here