将过滤器应用于浇铸柱

时间:2019-03-01 19:21:02

标签: sql sql-server

我想将过滤器应用于我已转换为DATE的列,如下例所示:

main = 
    let input = "{\"name\": \"Greenland\", \"reading\": 54}"
        f = decode input :: Maybe (Int -> DataPoint)
    in print $ fmap ($ 7) f
-- Just (DataPoint {placeName = "Greenland", readings = (7,54)})

这不起作用。我收到错误:“无效的列名'D'。” 我也尝试过:

<add key="CMSDisplayApplicationErrorMessages" value="true" />

得到同样的错误。知道我该怎么做吗?

1 个答案:

答案 0 :(得分:1)

首先,如果C已经是日期/时间类型,则可以执行以下操作:

select A, B, CAST(C as DATE) as D, E
from MY_TABLE 
where C > DATEADD(DAY, 1, '2018-12-12')

如果没有,则可以使用横向联接,该联接在SQL Server中使用APPLY关键字:

select A, B, v.D, E
from MY_TABLE t cross apply
     (values (CAST(C as DATE))) v(D)
where v.D > '2018-12-12';

如果C是字符串,我强烈建议使用TRY_CAST()或就地修复数据。