2014-02-27 72 views
0

我使用下面的查詢顯示我的測試名稱和日期。現在我的日期格式是2014-02-27 17:26:49.0,但我需要以2014-02-27格式顯示。我如何修改我的查詢呢?在休眠狀態下更改日期格式標準查詢?

Session ses = sessionFactory.getCurentSession(); 
Criteria c = ses.createCriteria(user.class); 
c.add(Restrictions.eq("id", uid)); 
c.add(Restrictions.eq("name", uname)); 

ProjectionList pl = Projections.projectionList(); 
pl.add(Projections.property("testid")); 
pl.add(Projections.property("date")); 

c.setProjection(Projections.distinct(pl)); 
List<String> list = c.list(); 
+0

使用simpledataformat轉換,還怎麼ü可以改變2月27日到9 feb ?? – Kick

+0

我的錯27歲。如何在條件查詢中使用simpledataformat。你可以舉一個例子 – Vinod

+0

kk我已經添加了答案 – Kick

回答

0
By using "sqlGroupProjection" I have changed my date format to **2014-02-27** 

projectionList.add(Projections.sqlGroupProjection("date(date) as createdDate", "createdDate", new String[] { "createdDate" }, new Type[] { StandardBasicTypes.DATE })); 
-1

試試這個。

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm"); 

    Date inputDate = new Date(); 

    System.out.println(simpleDateFormat.format(inputDate)); 
} 

輸出:

27/02/2014 07:25 
0

上面的代碼是不正確。它選擇兩個字段,並假定它返回一個List<String>。這是不可能的。列表中的每個元素都將是包含2個元素的Object數組:testid和日期。日期元素將與實體中的日期字段具有相同的類型(我希望這是java.util.Date)。

因此,顯示使用特定格式的查詢結果,你會使用類似以下內容:

DateFormat df = new SimpleDateFormat("MMMM dd, yyyy"); 
List<Object[]> rows = c/list(); 
for (Object[] row : rows) { 
    Date date = (Date) row[1]; 
    System.out.println(row[0] + " - " + df.format(date); 
} 
-1
 SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
     SimpleDateFormat format2 = new SimpleDateFormat("MMMM dd,yyyy"); 
     Date date = format1.parse("2014-02-27 17:26:49.00"); 
     System.out.println(format2.format(date));  

INPUT : 2014-02-27 17:26:49.00 
OUTPUT : February 27,2014 
+0

但我需要它在條件查詢 – Vinod