首页新闻找找看学习计划

sql server 存储过程查询问题。

0
悬赏园豆:5 [已关闭问题] 关闭于 2018-03-01 14:51
DECLARE    @return_value int

EXEC    @return_value = [dbo].[CWG_JSMX]
        @BDate = '2018-01-1',
        @EDate = '2018-01-31 23:59:59',
        @MD = N'XM002-B5'

SELECT    'Return Value' = @return_value

GO

我有两条数据是2018-01-31当天的,在查询管理器中查询存储过程查不到。

但是我把查询语句从存储过程中拿出来,用同样的参数赋值查询,却可以查询到2018-01-31当天的数据。

为什么?

下面是存储过程代码:

省略了部分字段

 
ALTER PROC [dbo].[CWG_JSMX]
    (
      @BDate AS DATE ,
      @EDate AS DATE ,
      @MD AS VARCHAR(30)
    )
AS
    BEGIN 
        SELECT  t1.OrderCode ,
                @BDate AS JSBeginDt ,
                @EDate AS JSEndDt ,
                t1.OrderType ,
                t1.OrderTime ,
                t1.MemberCode , 
                od.FeeTotal
        FROM    dbo.S_Order AS t1
                LEFT JOIN dbo.S_OrderDetail od ON t1.ordercode = od.ordercode
        WHERE     t1.StoreCode = @MD
                AND ( 
                 t1.OrderTime >= @BDate
                      AND t1.OrderTime <= @EDate 
                    )
                    AND t1.PayStatus!='未支付'
    END    

GO
Vincent8464的主页 Vincent8464 | 初学一级 | 园豆:41
提问于:2018-03-01 11:10
< >
分享
所有回答(3)
0

参数有问题吧  @BDate = '2018-01-1', 传递成@BDate = '2018-01-1 00:00:00',

_Vegetables | 园豆:569 (小虾三级) | 2018-03-01 11:20
0

你的参数查询的时候要把结束时间加一天,或者查询时把时间格式化一下  CONVERT(VARCHAR(10),t1.OrderTime,120)

豆子ll | 园豆:364 (菜鸟二级) | 2018-03-01 13:33

我直接把sql语句拿出来替换参数,可以查询到数据,说明我的sql语句没问题。

支持(0) 反对(0) Vincent8464 | 园豆:41 (初学一级) | 2018-03-01 14:03

@h_Vincent: 这个是sql里的时间格式,如果不转换的话查询@BDate = '2018-01-1', @EDate = '2018-01-31 23:59:59',其实是@BDate = '2018-01-1', @EDate = '2018-01-30 23:59:59'号的

支持(0) 反对(0) 豆子ll | 园豆:364 (菜鸟二级) | 2018-03-01 14:06

@小鹿L: 一样的

支持(0) 反对(0) Vincent8464 | 园豆:41 (初学一级) | 2018-03-01 14:32

@h_Vincent: 你是怎么改的啊

支持(0) 反对(0) 豆子ll | 园豆:364 (菜鸟二级) | 2018-03-01 14:58

@小鹿L: 是参数类型的问题。应该是DATETIME,而不是DATE

支持(0) 反对(0) Vincent8464 | 园豆:41 (初学一级) | 2018-03-01 14:59
0

是参数定义的问题,应该是DATETIME,而不是DATE

Vincent8464 | 园豆:41 (初学一级) | 2018-03-01 14:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册