我正在尝试检查我转换为日期值的VARCHAR
值,然后检查转换后的值是否大于另一个值是否如预期的那样工作。
我已经附上了一张s.EFFECTIVE_DATE
不大于t.StatusEffectiveDate
的图片,以及为什么它会显示在我的结果集中。这就是我的问题。
下面是我的代码,其中where子句下面的粗体和语句如果出现问题:
DECLARE @peims2016SnapshotDate date = '2016-10-28'
SELECT t.StudentID, t.Status, s.status, t.StatusEffectiveDate, s.effective_date, t.enddate, @peims2016SnapshotDate as peimssnapshotdate, CONVERT(VARCHAR(10), DATEADD(day, -1, t.Enddate),101) as NewEndDate
FROM Mcsfwisdtest.FRA.dbo.vw_HHSurvey s
INNER JOIN Fwisddw.dbo.Focus_Export_Econ_DisadvantagedHHS_TEST t
ON s.CustomerID = t.StudentID
AND s.SiteID = LocationID
WHERE CAST(t.Enddate as date) > @peims2016SnapshotDate
**AND CAST(s.effective_date as date) > CAST(t.StatusEffectiveDate as date)**
AND t.[Status] = 'PAID' AND s.[Status] != 'PAID'
OR (t.[Status] = 'REDUCED' AND s.[Status] = 'FREE')
ORDER BY t.StudentID asc
发布于 2017-02-14 00:57:37
您需要使用正确的样式(在您的示例中是样式101
)转换为date
:
DECLARE @peims2016SnapshotDate date = '2016-10-28'
SELECT t.StudentID,
t.Status,
s.status,
t.StatusEffectiveDate,
s.effective_date,
t.enddate,
@peims2016SnapshotDate as peimssnapshotdate,
CONVERT(VARCHAR(10),DATEADD(DAY,-1,t.Enddate),101) as NewEndDate
FROM Mcsfwisdtest.FRA.dbo.vw_HHSurvey s
INNER JOIN Fwisddw.dbo.Focus_Export_Econ_DisadvantagedHHS_TEST t
ON s.CustomerID = t.StudentID
AND s.SiteID = LocationID
WHERE CAST(t.Enddate as date) > @peims2016SnapshotDate
AND CONVERT(date,s.effective_date,101) > CONVERT(date,t.StatusEffectiveDate,101)
AND ((t.[Status] = 'PAID' AND s.[Status] != 'PAID')
OR (t.[Status] = 'REDUCED' AND s.[Status] = 'FREE'))
ORDER BY t.StudentID asc;
https://stackoverflow.com/questions/42209370
复制相似问题