2015-07-16 24 views
5

Projemde jooq kullanıyorum ve iki tarih arasındaki bazı verileri sorgulamam gerekiyor. Doğru verileri üretirJOOQ tarihleri ​​arasında sorgu için

sql sorgusu i yazdım

select created_on from queue_token where created_on between '2015-07-16' and '2015-07-17' and token_queue_id=1; 

eşdeğer jooq sorgu altındadır ama

create.select().from(com.database.tables.QueueToken.QUEUE_TOKEN) 
        .where(com.database.tables.QueueToken.QUEUE_TOKEN.TOKEN_QUEUE_ID.equal(1)) 
        .and(com.database.tables.QueueToken.QUEUE_TOKEN.CREATED_ON.between(new Timestamp(fromDate.getTime())).and(new Timestamp(toDate.getTime()))) 
        .fetch(); 

jooq sorgu sonucunu üretir gerekli bir sonuç dışarı vermez ise ancak sadece fromDate ile tam olarak eşleşen kayıtlar üretir. Yani temelde tarih aralığı için çalışmıyor.

Burada birileri yardımcı olabilir mi?

+1

Ne SQL deyimi jOOQ sorgusunda 'Query.getSQL (ParamType.INLINED)' yi çağırdığınızda oluşturuldu? –

cevap

1

Sorun, zaman damgası veya tarih ve zaman geçmekte olduğunu düşünüyorum (iyi java bilmiyorum). Yani yerine e.x. "2015-07-16", "2015-07-16 12:55:00" veya "1436187300" olsun.

İlk olarak new Timestamp(fromDate.getTime()) değerini ayıklamayı deneyin ve haklıysam, bunu zaman olmadan basit bir tarihe dönüştürmeye çalışın.

zaman olmadan doğru tarih değer elde etmek kullanabilirsiniz: