传递日期参数时Sql查询错误

时间:2017-09-19 11:11:08

标签: sql sql-server sql-query-store

    select  Products.prodname, sum( billdetail.Qty) as qty,BillDetail.rate, 
    sum(billdetail.amt) as Amt from billdetail
    inner join products 
    on products.prodid = billdetail.prodid
    inner join category
    on category.catid = products.catid
    inner join billmaster 
    on billmaster.BillID = BillDetail.BillID
    where billmaster.billdate between 1/08/2017 and 19/09/2017 and CatName = 
    'chicken'
    group by prodname,rate

我的问题是,当我包含日期参数时,它会停止工作。我怎么能包括它们?

3 个答案:

答案 0 :(得分:1)

首先,字符串文字的日期必须是单引号 - ,其次,我建议始终使用YYYYMMDD的ISO-8601格式适用于任何语言/区域设置(其他格式取决于当前语言/区域设置,可能在某些系统上有效,但在其他系统上有效)。

所以试试:

WHERE
    billmaster.billdate BETWEEN '20170801' AND '20170919'

答案 1 :(得分:0)

日期和字符串文字应该包含在两个''

之间
select  
  Products.prodname, 
  sum( billdetail.Qty) as qty,
  BillDetail.rate, 
  sum(billdetail.amt) as Amt 
from billdetail
inner join products on products.prodid = billdetail.prodid
inner join category on category.catid = products.catid
inner join billmaster on billmaster.BillID = BillDetail.BillID
where billmaster.billdate between '20170801' and '20170919' 
  and CatName = 'chicken'
group by prodname,rate;

此外,建议使用iso标准格式来格式化这些日期的值。值。

答案 2 :(得分:0)

日期需要''=''2017年1月8日'和'19 / 09/2017'

你还需要加入前的子句