2013-07-24 61 views
0

我試過顯示1個月的數據,但我想要顯示,例如01.06.2013到01.07.2013之間?如何更改此查詢以在兩個日期之間顯示?在此先感謝如何在sql中的兩個日期之間列出數據?

select b.ID ID, bt.type BULTEN_TYPE, b.ID TOPIC, b.Bul_Effect EFFECTT, b.Bul_Comment COMMENTS, 

    concat(date_format(b.Bul_date,'%d.%m.%Y'), ' ', b.Bul_hour, ':', b.Bul_min) as BEGIN,  
    concat(date_format(b.bitdate,'%d.%m.%Y'), ' ', b.bithour 
    , ':', b.bitmin) as FINISH from bulten b, bulten_type bt, statu s WHERE b.Bul_Type = bt.ID and 
     b.Status = s.ID and Bul_date >= date(now() - interval 1 month) order by ID desc; 

回答

1

WHERE子句將得到你用什麼作爲一個例子:

... and Bul_date BETWEEN '1/6/2013' AND '1/7/2013' ... 

現在,我想你想變得更加動態的方式將是:

... and Bul_date BETWEEN GETDATE() AND DATEADD(DAY, 1, GETDATE()) ... 

那會讓你在現在,並從現在起一天。現在

,與上例中的問題是,GETDATE()上有一個時間,所以,如果你想帶,其(即從午夜開始),你可以這樣做:

... and Bul_date BETWEEN DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) AND 
     DATEADD(DAY, 1, DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))) 
2
select b.ID ID, 
     bt.type BULTEN_TYPE, 
     b.ID TOPIC, 
     b.Bul_Effect EFFECTT, 
     b.Bul_Comment COMMENTS, 
    concat(date_format(b.Bul_date,'%d.%m.%Y'), ' ', b.Bul_hour, ':', b.Bul_min) as BEGIN, 
    concat(date_format(b.bitdate,'%d.%m.%Y'), ' ', b.bithour 
    , ':', b.bitmin) as FINISH 
    from bulten b, bulten_type bt, statu s 
     WHERE b.Bul_Type = bt.ID and 
     b.Status = s.ID and 
    Month(Bul_date)=Month(GetDate()) and Year(Bul_date)=Year(GetDate()) 
    order by ID desc; 
+0

謝謝bro.But,我進入我的日期? – Mhmt

+0

@MehmetAkyel如果你想提供你自己的範圍而不是'GetDate()',它會自動給你月份報告, –

1

使用本

Bul_date BETWEEN @StartDate AND @EndDate; 
相關問題