sql-server - 用于根据另一个日期和外键列添加日期的计算列

标签 sql-server calculated-columns

我在同一个表中有以下几列:身份验证

Password_Date (DATETIME, NOT NULL)
Password_Period (INT, FOREIGN KEY of a look-up table)
Password_Cycle (DATETIME, NOT NULL)
  • Password_Date 将存储用户更改密码时的日期时间

  • Password_Period 是从查找表引用的外键列。 (假设其值为30)

  • 对于 Password_Cycle 列,我想在计算列中添加一个公式。 该公式的逻辑是在 Password_Date 列中添加 30 天(Password_Period)。

我在设计 View 中尝试了公式([Password_Date]+[Password_Period]),但Password_Cycle的数据类型属性变为空白。

请提供可能的解决方案来完成这项工作。

注意:我必须仅使用计算列公式,而不能使用函数或过程。

最佳答案

它在 SSMS UI 中变为空白,因为 SQL Server 根据表达式计算出计算列的数据类型本身。这不是设计器中定义的内容。

它将是 datetime,尽管我不喜欢 datetime+int 语法,并推荐 DATEADD(DAY, Password_Period) ,Password_Date) 来代替。

关于sql-server - 用于根据另一个日期和外键列添加日期的计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37899905/

相关文章:

java - 无法将 jdbc 连接到 sql server

python - pandas DataFrame 中列的更短符号

ms-access - 如何在Access中的计算字段中使用DateDiff

sql - 如何以最佳方式对过去一年中的月份列进行求和?

sql-server - 处理韩语和中文字符的 SQL Server 数据库字段

sql-server - 从 FOR XML PATH 中删除 XML 标签

sql - 为数据库中的所有表生成创建表 SQL 脚本

sql-server - SQL Server - 比较相同列中数据的 2 个表而不检查是否相等

java - 像数据仓库一样预先计算额外的 Java 对象字段还是即时计算?

c#-4.0 - 如何将数据 Gridview 两列相乘并在另一列中显示结果