2015-02-23 81 views
1

我有一個HQL查詢從數據庫中獲取數據給定的用戶時間戳。查詢工作正常,但不能獲取我期望的確切數據。如何根據HQL中的時間戳範圍從數據庫中獲取數據

例如:我通過了02/16/2015,02/23/2015,我的jsp頁面中的值作爲開始日期和結束日期。我將這些值傳遞給HQL.但我的代碼給出了01/16/2015和02/23/2015.reduce 1 month.so我想知道我怎麼能達到我期望的。下面是我的code.Thank你。

public static List<TestResult> getTestResulDataSet(String sDate,String eDate) { 
    final Map<String,List<TestResult> > dataSet = new HashedMap(); 

    DateFormat df = new SimpleDateFormat("mm/dd/yyyy"); 
    Date date1=null, date2=null; 
    String Rsdate=sDate; 
    String Redate=eDate;   
     try { 
      date1 = (Date) df.parse(Rsdate); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     try { 
      date2 = (Date) df.parse(Redate); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    final Date date3=date1; 
    final Date date4=date2; 

    Transactions.exec(new Procedure() { 
     @Override 
     public void execute() throws Throwable { 
      List<TestResult> rs = new ArrayList(); 

      rs = Transactions.getSession().createCriteria(TestResult.class).add(Restrictions.ge("timestamp",date3)).add(Restrictions.le("timestamp",date4)).list(); 

      dataSet.put("TestResult", rs); 

     } 
    }); 

回答

0

正確的日期格式爲MM/dd/yyyy

正確:DateFormat df = new SimpleDateFormat("MM/dd/yyyy");

mm代表分鐘,同時MM代表個月。 官方格式描述:

Letter Date or Time Component Presentation Examples 
G Era designator Text AD 
y Year Year 1996; 96 
Y Week year Year 2009; 09 
M Month in year Month July; Jul; 07 
w Week in year Number 27 
W Week in month Number 2 
D Day in year Number 189 
d Day in month Number 10 
F Day of week in month Number 2 
E Day name in week Text Tuesday; Tue 
u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1 
a Am/pm marker Text PM 
H Hour in day (0-23) Number 0 
k Hour in day (1-24) Number 24 
K Hour in am/pm (0-11) Number 0 
h Hour in am/pm (1-12) Number 12 
m Minute in hour Number 30 
s Second in minute Number 55 
S Millisecond Number 978 
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00 
Z Time zone RFC 822 time zone -0800 
X Time zone 
+0

謝謝您的回答,但仍然不work.the問題是我不能獲取當前月份的數據。 – gihan 2015-02-23 09:47:19

+0

你確定日期沒有解決嗎?無論哪種方式,這是一個錯誤。假設我的日期爲2015年2月11日,在2015年1月11日的小時00:02:00(2分鐘)使用新的SimpleDateFormat(「mm/dd/yyyy」)結果,同時使用新的SimpleDateFormat(「 MM/dd/yyyy「)給出日期2015年2月11日小時00:00:00。有月份差異。 – Mythul 2015-02-23 10:19:33

+0

也許這個問題也可以幫助你:http://stackoverflow.com/questions/21265134/hql-to-query-records-between-two-dates – Mythul 2015-02-23 10:23:47

相關問題