2013-07-24 65 views
1

我有一個表格,裏面有一個TimeStamp列。我想在該表上執行一個查詢,條件是隻檢查該列上的日期而不是時間。 我如何在HQL中做到這一點?基於時間戳列上日期的HQL查詢?

假設我的專欄的值爲07/23/2013 04:40:59 PM,我想選擇查詢以僅檢查7/23/2013並忽略時間。

回答

0

在MySQL HQL可以是這樣的:

where DATE_FORMAT(date_column,'MM/dd/yyyy') = :date 

其中的日期是「2013年7月23日」

2

你可以把兩個約束到您HQL,一個指定大於或等於搜索日期的開始日期,以及指定日期少於第二天的日期。

table.timestamp >= 07/23/2013 AND table.timestamp < 07/24/2013 

from Table where to_char(TimeStamp,'YYYY/MM/DD') = '2013/07/23' 
+0

任何人都可以解釋爲什麼我的答案downvoted? –

+0

因爲第一個解決方案是硬編碼的。計算下一個日期(7月24日)並不是很好,然後將它傳遞給SQL查詢。第二種解決方案更好,所以我現在點擊upvote。 – Alex

0

Wilts C. from Table to_char(TimeStamp,'YYYY/MM/DD') = '2013/07/23'是正確的答案。其他答案不涉及HQL,也不涉及如何格式化日期輸入以便在HQL中進行比較。

我沒有足夠的聲望來投票。 HQL將採用日期字符串輸入(注意SQL注入)並將其與您的列日期字符串格式進行比較。另一個例子:to_char(surveyDate,'YYYY/MM/DD') between '2000/09/23' and '2015/07/23'