`
forestkqq
  • 浏览: 206564 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

在SqlServer中计算日期周期

SQL 
阅读更多

 

    最近在开发一个计量信息系统,数据库使用 SqlServer 。计量器具需要定期的进行校准 / 检定。

设计了一个器具表: MetroIntraImpl ,其中有

 

 

  • 字段 MetroDate 表示上次校准 / 检定日期
  • 字段 MetroCycle 表示校准 / 检定周期
  • 字段 MetroCycleUnit 表示校准 / 检定周期单位,可以为年月日等。

 

    由此三个字段,客户会希望得到器具下次的拟校准 / 检定日期。

 

    为此,设计一个视图,视图的 Sql 为:

SELECT dbo.MetroIntraImpl.*,
CASE
WHEN MetroDate IS NULL THEN NULL
WHEN Len(LTRIM(MetroDate)) = 0 THEN NULL
ELSE
  CASE MetroCycleUnit
      WHEN '年' THEN DATEADD(Year,    MetroCycle, CONVERT(datetime, MetroDate))
      WHEN '月' THEN DATEADD(Month, MetroCycle, CONVERT(datetime, MetroDate))
      WHEN '日' THEN DATEADD(Day,     MetroCycle, CONVERT(datetime, MetroDate))
      ELSE DATEADD(Month, MetroCycle,CONVERT(datetime, MetroDate))
  END
END 
AS MetroDateNext
FROM dbo.MetroIntraImpl

 

 

 

    访问此视图的 MetroDateNext 字段即可获得器具的下次拟校准 / 检定日期。

 

    参看 SqlServer 的在线帮助, DATEADD 的第一个参数还是其他的一些值,如季度、小时等。

 

 

 

1
0
分享到:
评论

相关推荐

    SQL Server 2008 商业智能完美解决方案(3)

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

    SQL Server 2008商业智能完美解决方案 1/3

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

    SQL Server 2008商业智能完美解决方案 3/3

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

    SQL Server 2008商业智能完美解决方案 2/3

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

    SQL查询技巧(范例宝典)

     实例366 在查询中使用日期函数 538  10.20 having语句应用 540  实例367 利用having语句过滤分组数据 540  实例368 having语句应用在多表查询中 541  10.21 视图的应用 543  实例369 在C#中...

    C#程序开发范例宝典(第2版).part13

    实例092 在NumericUpDown控件中显示当前系统日期 133 2.10 控件技术 134 实例093 程序运行时智能增减控件 134 实例094 多控件的焦点循环移动 136 实例095 动态创建控件 138 实例096 在Button按钮上绘图 138 ...

    C#程序开发范例宝典(第2版).part08

    实例092 在NumericUpDown控件中显示当前系统日期 133 2.10 控件技术 134 实例093 程序运行时智能增减控件 134 实例094 多控件的焦点循环移动 136 实例095 动态创建控件 138 实例096 在Button按钮上绘图 138 ...

    C#程序开发范例宝典(第2版).part02

    实例092 在NumericUpDown控件中显示当前系统日期 133 2.10 控件技术 134 实例093 程序运行时智能增减控件 134 实例094 多控件的焦点循环移动 136 实例095 动态创建控件 138 实例096 在Button按钮上绘图 138 ...

    C#程序开发范例宝典(第2版).part12

    实例092 在NumericUpDown控件中显示当前系统日期 133 2.10 控件技术 134 实例093 程序运行时智能增减控件 134 实例094 多控件的焦点循环移动 136 实例095 动态创建控件 138 实例096 在Button按钮上绘图 138 ...

Global site tag (gtag.js) - Google Analytics