+ -
当前位置:首页 → 问答吧 → 高手请进--------为什么不能查询出,视图里大于-8的记录?

高手请进--------为什么不能查询出,视图里大于-8的记录?

时间:2011-09-06

来源:互联网

以下是视图,OverDay 是截到日期和现在的天数差,但为什么用
SQL code
Select * from AlertDueView where   (逾期天数>-8)

查不出记录,而用 (逾期天数<0)确可以?
明明是有记录的。。




SQL code


/*将要到期的用户,全部*/
CREATE VIEW dbo.AlertDueView
AS
SELECT dbo.Project.ProjectNo AS 单号, dbo.Project.ClientName AS 客户名称, 
      dbo.Project.LoanAmount AS 金额, dbo.Project.FromDate AS 借款日期, 
      dbo.Project.EndDate AS 截至日期, dbo.Project.OverDay AS 逾期天数, 
FROM dbo.Project LEFT OUTER JOIN
      dbo.Client ON dbo.Project.ClientID = dbo.Client.ClientID
WHERE (dbo.Project.OverDay < 0)



作者: cowbo   发布时间: 2011-09-06

你这样做的结果是 -8<OverDay<0。而且视图要更新才行。
不建立用这种方式,直接用SQL语句查出来不就行了?

作者: babydog01   发布时间: 2011-09-07

可能你的OverDay数据类型不对吧,楼上说得不对 >-8,怎么会是-8<OverDay<0 这样呢,还是自己试下先

作者: moshao6   发布时间: 2011-09-07

截到日期和现在 直接相减?
它的结果仍然是日期类型的,不能直接比较

作者: sz_haitao   发布时间: 2011-09-07

满足<0条件的记录不一定就满足>-8的条件

作者: seleron   发布时间: 2011-09-07

SQL code

CREATE VIEW dbo.AlertDueView
AS
SELECT dbo.Project.ProjectNo AS 单号, dbo.Project.ClientName AS 客户名称, 
      dbo.Project.LoanAmount AS 金额, dbo.Project.FromDate AS 借款日期, 
      dbo.Project.EndDate AS 截至日期, dbo.Project.OverDay AS 逾期天数 
FROM dbo.Project LEFT OUTER JOIN
      dbo.Client ON dbo.Project.ClientID = dbo.Client.ClientID
WHERE DATEDIFF(day,Convert(DateTime,dbo.Project.EndDate,21),GETDATE() ) 

作者: ytmfudukomh   发布时间: 2011-09-07

SQL code

CREATE VIEW dbo.AlertDueView
AS
SELECT dbo.Project.ProjectNo AS 单号, dbo.Project.ClientName AS 客户名称, 
      dbo.Project.LoanAmount AS 金额, dbo.Project.FromDate AS 借款日期, 
      dbo.Project.EndDate AS 截至日期, dbo.Project.OverDay AS 逾期天数 
FROM dbo.Project LEFT OUTER JOIN
      dbo.Client ON dbo.Project.ClientID = dbo.Client.ClientID
WHERE DATEDIFF(day,Convert(DateTime,dbo.Project.EndDate,21),GETDATE())>-8 

作者: ytmfudukomh   发布时间: 2011-09-07

热门下载

更多