2017-07-18 65 views
0

我正在嘗試編寫一個用於在SSRS中創建數據源的創建語句。我的CREATE語句如下: -在SSRS中將字符串列轉換爲日期

Select TOP(cast(1000 as integer)) Name, 
TName, 
IName, 
IType, 
AvgPercent, 
FCount, 
PCount, 
AvgInPages, 
    CONVERT(VARCHAR(10),RunDate,103) AS RunDate, 
CONVERT(TIME(0), RunTime) AS RTime 
from Index 
where RunDateBetween @StartDate and @EndDate 

目前,我已經做了這樣的CONVERT(VARCHAR(10),RunDate,103) AS RDate,但條款之間不工作。條款之間只給我開始日期的記錄,之後沒有任何記錄。所以我想將varchar轉換爲日期我在網上搜索CONVERT(Date,RunDate,103) AS RunDate後嘗試使用這個,但是這給了我日期和時間,而我只需要在該列中的日期。經過大量搜索後,我無法找到任何concerete解決方案。請幫助我。

+0

你的where子句應該是where RunDate在@StartDate和@ EndDate之間,RDate列不適用於你的where子句。另外請確保您的SSRS參數爲Date數據類型 –

+0

首先,您不能在WHERE子句中使用SELECT子句中的別名,請參見[邏輯查詢處理](http://www.nickyvv.com/) 2013/02 /邏輯查詢processing.html)。哪些數據類型是您的RunDate列? – NickyvV

+0

@NickyvV我已經改變了該列的名稱,同時發佈這個,現在我編輯了代碼,將其命名爲RunDate ...我的查詢正在執行..DataType是varchar(10) – Arr

回答

3

這個怎麼樣?

SELECT TOP 1000 NAME 
    ,TName 
    ,IName 
    ,IType 
    ,AvgPercent 
    ,FCount 
    ,PCount 
    ,AvgInPages 
    ,CAST(RunDate AS DATE) AS RDate 
    ,CONVERT(TIME(0), RunTime) AS RTime 
FROM INDEX 
WHERE CAST(RunDate AS DATE) BETWEEN @StartDate 
     AND @EndDate 
+0

謝謝!它爲我工作。 – Arr

+0

很高興爲您效力。如果它有用,請接受它。 – Dave94

+0

我沒有足夠的聲望來接受它。 – Arr