使用SQL now()函数

时间:2016-06-25 19:46:31

标签: sql postgresql

我正在尝试使用SQL的now()函数检索一些数据。对于每月和每周查询,它无问题。但是,当我尝试提取每日数据时,这些数字已经过时了。我正在使用的示例代码:

SELECT
  COUNT(distinct be.booking_id)AS "Number of Inquiries"
FROM booking_events be
WHERE be.event = 'inquire' 
AND DATE_PART('day', be.created_at) = DATE_PART('day', now())

我试着搞清楚了几天,但没有任何运气。

2 个答案:

答案 0 :(得分:1)

嗯,如果你想要今天的数据,我可能会建议:

SELECT COUNT(distinct be.booking_id)AS "Number of Inquiries"
FROM booking_events be
WHERE be.event = 'inquire' AND
      be.created_at >= current_date and
      be.created_at < current_date + interval '1 day';

我不认为date_part()会帮助您,除非您想要来自同一个日的所有记录 - 例如,1月25日,2月25日,3月25日,等等

你可能会想到date_trunc()

WHERE be.event = 'inquire' AND
      date_trunc(be.created_at) = current_date 

答案 1 :(得分:0)

请解释一下您的问题是什么 - 这是您说不起作用的工作查询示例:

enter image description here 修改

date_trunc

enter image description here

<强> EDIT2

以防您尝试比较今天的agaist日期,然后使用select date_trunc('day',created_at), date_trunc('day',now()) from be ; ,例如:

import com.mongodb.MongoClient;

import com.mongodb.client.MongoCursor;

public class test {
    public static void main(String[] args) {
        try{
            MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

            MongoCursor<String> dbsCursor = mongoClient.listDatabaseNames().iterator();
            while(dbsCursor.hasNext()) {
                System.out.println(dbsCursor.next());
            }

        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }
}