2011-09-09 11 views
1

私はpostgresに変換する必要がある別のsqliteスクリプトを持っています。あなたが助けることができるかどうチラッを取る:) sentdateが、これは働くべき日付/タイムスタンプフィールドであると仮定するとsqliteをpostgresに変換する

SELECT count(*), strftime('%H', sentdate) as hour FROM latency l, contacts me 
    WHERE l.lat < 1 and datetime(sentdate) > datetime('2009-01-01') and datetime(sentdate)  
     < datetime('2011-02-01') and (me.id = l.replyuid or me.id = l.senduid) 
    GROUP BY hour ORDER BY hour asc; 

答えて

1

SELECT COUNT(*), 
    date_part('hour', sentdate) AS hour 
FROM latency l, 
    contacts me 
WHERE l.lat < 1 
    AND date_trunc ('day', sentdate) > DATE ('2009-01-01') 
    AND date_trunc ('day', sentdate) < DATE ('2011-02-01') 
    AND (me.id = l.replyuid 
     OR me.id = l.senduid) 
GROUP BY date_part('hour', sentdate) 
ORDER BY hour ASC; 
+0

私はこのクエリを書いていた場合、私はこれを作ってみるかもしれませんが(コンマの代わりに)内部結合(join conditiion)に 'or'があるので、これをユニオン、同じクエリ、しかし多分もっと慣用的なSQLとして表現したいと思います。 – SingleNegationElimination

+0

@TokenMacGuy - 十分に真実。私は非常にANSI結合を好むが、私は元のクエリからあまりにも離れていないようにしようとしていた... – gsiems

関連する問題