我在MySQL數據庫檢入和人員結賬的一些記錄:SQL:選擇最低的子查詢和分組
SELECT * FROM db
結果:
-----------------------------------------------------------------------
ID Name Lastname in out
1 James Bond 20151014090000 20151014103000
2 James Bond 20151014110000 20151014123000
3 James Bond 20151014130000 20151014143000
4 James Bond 20151014150000 20151014163000
5 James Bond 20151014170000 20151014183000
6 James Bond 20151014190000 20151014203000
7 Jason Bourne 20151014090000 20151014103000
8 Jason Bourne 20151014110000 20151014123000
9 Jason Bourne 20151014130000 20151014143000
10 Jason Bourne 20151014150000 20151014163000
11 Jason Bourne 20151014170000 20151014183000
12 Jason Bourne 20151014190000 20151014203000
13 Jack Bauer 20151014090000 20151014103000
14 Jack Bauer 20151014110000 20151014123000
15 Jack Bauer 20151014130000 20151014143000
16 Jack Bauer 20151014150000 20151014163000
17 Jack Bauer 20151014170000 20151014183000
18 Max Payne 20151014090000 20151014103000
19 Max Payne 20151014110000 20151014123000
20 Max Payne 20151014130000 20151014143000
21 Max Payne 20151014150000 20151014163000
22 Max Payne 20151014170000 20151014183000
我想獲得最接近的日期到下面的當前日期,即進入,考慮到在內部(IN)。
我使用的,用於MySQL的當前日期的比較:
date_format(now(), '%Y%m%d%H%i%S')
假設是20151014133000
我想獲得一個查詢是:
3 James Bond 20151014130000 20151014143000
9 Jason Bourne 20151014130000 20151014143000
15 Jack Bauer 20151014130000 20151014143000
20 Max Payne 20151014130000 20151014143000
非常感謝您的提前!
[EDIT1] 進出是INT的 我在格式,因爲任意不等階操作與實際時間進行比較吧: date_actual - in_value = time_lapsed 例如:
20151014133000 - 20151014090000 = 43000
如果我得到time_lapsed的最小值,我會得到最接近date_actual的日期,然後我將在數據庫上搜索該日期按姓名和姓氏分組。
採用abs(NOW() - 日期),以獲得最接近的日期 –
什麼是你'in'和'out'的數據類型? – luoluo
這似乎是一個不好的例子。所有日期都等於目標日期。所以'接近'是無關緊要的。 – Strawberry