我有一個現有的 JPA @Query,我需要向 WHERE 添加一個附加條件,以便它只回傳當前日期與時間戳列匹配的行。基本上想知道是否有可能:
@Query("SELECT .. "
"WHERE .. "
"AND isCurrentDay(c.completedTs))"
否則可以通過本機查詢完成我需要的作業。
編輯:我的解決方案最終是使用本機查詢,例如:
@Query(value = "SELECT ... "
"WHERE ... "
"AND CONVERT (date, c.completedTs) = CONVERT (date, GETDATE()))",
nativeQuery = true)
uj5u.com熱心網友回復:
我會使用CURDATE您正在撰寫的語言的 sql 陳述句通過本機查詢來執行此操作會更安全。例如,對于 MySQL JPA,它看起來像這樣:
@Query("SELECT .. "
"WHERE .. "
"AND WHERE DATE(`completed_ts`)=CURDATE()",
nativeQuery = true)
uj5u.com熱心網友回復:
JPQL 公開了一些函式來關聯當前日期/時間:
從檔案:
CURRENT_DATE:此函式回傳資料庫服務器上當前日期的值。CURRENT_TIME:此函式回傳資料庫服務器上當前時間的值。CURRENT_TIMESTAMP:此函式回傳資料庫服務器上當前時間戳的值。
參考:javadoc
這些可以通過以下方式直接訪問當前日期
@Query("SELECT .. "
"WHERE .. "
"AND c.completedTs=CURRENT_DATE )"
請注意,AFAIK,這些是普通函式,不支持運算式,即,您不能執行 CURRENT_DATE-1。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/459061.html
下一篇:第一次以管理員身份運行C程式
