ACCESS資料庫時間應用之按時間段對欄位進行分組
阿新 • • 發佈:2019-02-01
近期使用ACCESS資料庫中,遇到一個需要對日期時間型欄位進行分段分組的問題,類似情況如下:
IDNAME TIMESTIMEGROUP
1SAM 17/06/06 14:56
2SAM 17/06/06 14:45
3SAM 17/06/06 14:50
4SAM 17/06/06 14:46
5SAM 17/06/06 14:46
6SAM 17/06/06 22:09
7SAM 17/06/06 23:09
8SAM 17/06/06 19:03
9SAM 17/06/06 22:13
需要按照一定的規則將時間分出早中晚來,根據已有的時間函式,貌似不太可能實現,於是另闢蹊徑。
終於在switch裡找到解決方案。核心部分程式碼如下:
SELECT T1.name, Format([TIMES],"hh:mm") AS TTIME, Switch(TTIME>='03:30' And TTIME<='09:29','早上',TTIME>='09:30' And TTIME<='15:29','中午',TTIME>='15:30' And TTIME<='21:29','晚上',TTIME>='21:30' Or TTIME<='03:29','深夜') AS TIMEGROUP
FROM T1;
得到的查詢結果如下,基本到達了針對時間進行分段的功能,由於只是進行了四分段,可能在時間概念上有些模糊,6-8分段可能好一些,只是程式碼會增加而已。
name | TTIME | TIMEGROUP |
---|---|---|
SAM | 14:56 | 中午 |
SAM | 14:45 | 中午 |
SAM | 14:50 | 中午 |
SAM | 14:46 | 中午 |
SAM | 14:46 | 中午 |
SAM | 22:09 | 深夜 |
SAM | 23:09 | 深夜 |
SAM | 19:03 | 晚上 |
SAM | 22:13 | 深夜 |