1. 程式人生 > >ACCESS資料庫時間應用之按時間段對欄位進行分組

ACCESS資料庫時間應用之按時間段對欄位進行分組

        近期使用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分段可能好一些,只是程式碼會增加而已。

查詢1
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 深夜