2016-04-11 20 views
0

Şu anda aşağıdaki vaka deyimi var: Ben de denedimBigQuery'yi tarihleri ​​karşılaştıran ve dava kullanarak deyim

CASE WHEN TIMESTAMP_TO_USEC(TIMESTAMP)>=TIMESTAMP_TO_USEC(TIMESTAMP('03-14-2016 00:00:00')) THEN 'afterChanges' ELSE 'beforeChanges' END AS beforeOrAfter 

varyasyonları:

CASE WHEN TIMESTAMP>TIMESTAMP('03-14-2016 00:00:00') THEN 'afterChanges' ELSE 'beforeChanges' END AS beforeOrAfter 

CASE WHEN ROUND(DATEDIFF(TIMESTAMP, TIMESTAMP('03-14-2016 00:00:00')),0) >0 THEN 'afterChanges' ELSE 'beforeChanges' END AS beforeOrAfter 

Ancak, hep "(başka olsun Orijinal TIMESTAMP'den bağımsız olarak "önce"). Herhangi bir tavsiye?

cevap

2

Tüm
Nore CURRENT_TIMESTAMP() kullanımı yerine SO sadece TIMESTAMP

SELECT 
    CASE 
    WHEN TIMESTAMP_TO_USEC(CURRENT_TIMESTAMP()) >= TIMESTAMP_TO_USEC(TIMESTAMP('2016-03-04 00:00:00')) THEN 'afterChanges' 
    ELSE 'beforeChanges' 
    END AS beforeOrAfter1, 
    CASE 
    WHEN CURRENT_TIMESTAMP() >= TIMESTAMP('2016-03-04 00:00:00') THEN 'afterChanges' 
    ELSE 'beforeChanges' 
    END AS beforeOrAfter2, 
    CASE 
    WHEN CURRENT_DATE() >= DATE('2016-03-04 00:00:00') THEN 'afterChanges' 
    ELSE 'beforeChanges' 
    END AS beforeOrAfter3, 
+0

Önemli aşağıdaki gibi çalışması gerekir - Eğer 'işareti altında, yayınlanan cevabın soldaki kene kullanarak answer' kabul edebilir oylama. Bunun neden önemli olduğu konusunda http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235 adresine bakın! Ayrıca cevapta oy vermek de önemlidir. Yardımcı olan cevapları oylayın. Daha fazlası var ... Birisi sorunuza cevap verdiğinde ne yapacağınızı kontrol edebilirsiniz - http://stackoverflow.com/help/someone-answers. –

İlgili konular