2015-02-10 47 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