SQL - 在我的计算机上调整日期/时间后,如何在视图中恢复数据

时间:2016-12-01 14:03:55

标签: c# sql datetime

我认为本月会报告一些产品数据,但是当我调整一个月前后的日期/时间来测试我的视图数据是否会持续到下个月时,它就会消失。 / p>

但是当我将时间更改为当前时间时,我的视图数据恢复正常。 你能解释一下这个问题并告诉我如何解决这个问题。

create view BCT122016 
as 
    select 
        MASACH, 
        TENSACH, 
        SOLUONGTON 
    from 
        SACH 
    where 
        MONTH(GETDATE()) = 12 
        and YEAR(GETDATE()) = 2016 
GO

select * from BCT122016

1 个答案:

答案 0 :(得分:0)

您在视图中使用GetDate(),GetDate()会返回当前日期

每次更改系统时间时,GetDate()也会更改,并且您的视图会反映此更改会返回不同的数据。

create view BCT122016 
as 
    select 
        MASACH, 
        TENSACH, 
        SOLUONGTON 
    from 
        SACH 
    where 
        MONTH(GETDATE()) = 12 
        and YEAR(GETDATE()) = 2016 
GO

select * from BCT122016

由于WHERE子句,此视图仅在2016年12月期间返回。

where 
    MONTH(GETDATE()) = 12 
    and YEAR(GETDATE()) = 2016

构建特定月/年视图的设计不好,请在select语句中使用WHERE子句。