2016-03-25 24 views

cevap

0

kitap rafında emin, ancak doğrudan Knex kullandığı alınmış değil bir fonksiyonu olarak parametre olarak değil, sana denemelisiniz derdim:

qb.andWhere("end_time", ">=", knex.fn.now()); 
+0

(yani?) Bir parametre olmaktan artık() durdurmak fark ne (benim cevap bakınız) olan iki – aWebDeveloper

+0

w çiğ gönderme varsayalım/b bağlandığınız veritabanını hesaba katmaz (Knex.fn.now() 'nin yaptıklarından emin değilim, fakat * yapmalısınız *) – Jcl

+0

bir minör (veya ihmal etmemeliyim) çözümünüzün irritanı import knex – aWebDeveloper

0

Anahtar, bir ham sorgu kullanmaktır. Knex, ham sorguyu kullanma seçeneği ile birlikte gelir. Bu. I whereRaw ham sorgu ile gitti sorgusu

MyModel.forge() 
    .query(function(qb) { 
     qb.whereRaw("end_time >= now()") 
    }) 
+0

Ham yaklaşım problemi, veritabanı sağlayıcınıza bağlı olarak istediğiniz ad işlevine sahip olmanızdır. Pratikte, çoğu DB sağlayıcısının (SQL sağlayan) bu günlerde bir “NOW() işlevi vardır, ancak daha önce böyle değildi (ortak“ GETDATE() '). 'Knex.fn.now()' işlevinin kullanılmasının sağlayıcıya bağlı olmasına izin vermeliydim (aslında uygulamanın *** olup olmadığından emin değilim, ancak ham ise gönderirken *** olabilir Sorgular olamazdı) – Jcl

+0

tembel bir soru. knex.fn.now() – aWebDeveloper

+0

ne yapar? Muhtemelen mevcut uygulaması, burada yaptığınız gibi sadece bir ham CURRENT_TIMESTAMP veya sadece bir "NOW" dönüştürür. Ama bu uygulama ayrıntı – Jcl