2013-02-21 60 views
1

我使用斯卡拉2.10與浮油1.0.0並試圖做一個提升查詢。斯卡拉浮油提升日期組

我有一張桌子,「登錄」,我試圖做一個負載,groupBy在一個時間戳列。然而,當我嘗試groupBy時,我遇到了一個問題,當我嘗試格式化時間戳記字段以僅提取日期部分以在同一天將這些對象分組時。

考慮的對象:

id | requestTimestamp 
1 | Jan 1, 2013 01:02:003 
2 | Jan 1, 2013 03:04:005 
3 | Jan 1, 2013 05:06:007 
4 | Jan 2, 2013 01:01:001 

我想返回由類似天,其中,爲簡便起見,以下格式化時間戳ID關係發生,其中一個分組從數據庫中該ID的實際上是物體

Jan 1, 2013 -> (1, 2, 3) 
Jan 2, 2013 (4) 

我有以下的光滑表對象的列表:

private implicit object Logins extends Table[(Int, Timestamp)]("LOGINS") { 
    def id = column[Int]("ID", O.PrimaryKey) 
    def requestTimeStamp = column[Timestamp]("REQUESTTIMESTAMP", O.NotNull) 
    def * = logId ~ requestTimeStamp 
} 

下面的查詢方法:

val q = for { 
    l <- Logins if (l.id >= 1 && l.id <= 4) 
} yield l 

val dayGroupBy = new java.text.SimpleDateFormat("MM/dd/yyyy") 
val q1 = q.groupBy(l => dayGroupBy.format(l.requestTimeStamp)) 

db.withSession { 
    q1.list 
} 

然而,不但得不到預期的分組,我上線一個例外,我嘗試GROUPBY:

java.lang.IllegalArgumentException: Cannot format given Object as a Date 

沒有人有適當的任何建議按時間戳將數據分組?

回答

0

TimestampDate不是一回事!嘗試使用calendarSimpleDateTimeTimestamp轉換爲人類可理解的文本。

雖然不太確定第二個!