2015-02-10 188 views
3

我有一個問題,在那裏我有一個簡單的SQL 查詢如下顯示:SQL查詢語句(SQL服務器)之間的子句不工作?

Select 
    Ah_editime as todaysdate, 
    (CONVERT(VARCHAR(25), DATEADD(dd, -(DAY(GETDATE()) - 1), GETDATE()), 103)) AS monthstartdate, 
    (CONVERT(VARCHAR(10), CAST(GETDATE() AS DATE), 103)) AS monthcurrentdate 
from 
    Transaction 
where 
    Ah_editime BETWEEN (CONVERT(VARCHAR(25), DATEADD(dd, -(DAY(GETDATE()) - 1), GETDATE()), 103)) 
       AND (CONVERT(VARCHAR(10), CAST(GETDATE() AS DATE), 103)) 

我只想爲當前月,直到日期顯示的結果。但我面臨的問題是我從過去一個月獲得價值觀,這也造成了問題。我有一個顯示值的報告。

report

在這裏,如果你看到我讓所有的值,但我想只有當前月份。

P.S:這可能是格式問題嗎? todaysdate即將顯示,這是我的實際值。

+0

樣本數據來測試將是有益的。 – 2015-02-10 05:22:58

+0

@VijaykumarHadalgi:我已添加圖片。 – 2015-02-10 05:24:50

+0

您可以將todaysdate格式化爲某種正確的日期格式嗎? – sTg 2015-02-10 05:40:16

回答

2

Date格式應在您的查詢中修改如下。而不是103使用101

BETWEEN (CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),101)) AND (CONVERT(VARCHAR(10), CAST(GETDATE() AS DATE),101)) 
0

基於this後,約以下查詢什麼:

DECLARE @monthStartDate AS DATE 
DECLARE @monthCurrentDate AS DATE 
SELECT @monthStartDate = DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) 
SELECT @monthCurrentDate = GETDATE() 

SELECT CAST(Ah_editime AS DATE) AS todaysdate , 
     @monthStartDate AS MonthStartDate , 
     @monthCurrentDate AS MonthCurrentDate 
FROM [Transaction] 
WHERE Ah_editime BETWEEN @monthStartDate AND  @monthCurrentDate