自动更新取决于日期的布尔值 属性 (MSSQL)
Automatically update boolean property which is depend of date (MSSQL)
我正在搜索自动更新 table 中的布尔列的解决方案。该字段是“WarrantyActive”。我还有另一列“WarrantyDate”-> 保修期。
我想创建函数:if (WarrantyDate < DateTime.Now) -> 将 WarrantyActive 更改为 false.
public bool WarrantyIsActive { get; set; }
public DateTime WarrantyDate { get; set; }
当我使用 table 的 HttpGet 时,我应该在代码中执行此操作并检查吗?或者在 MSSQL 中有没有更好的方法自动检查这个值?
您可以 check/set 直接在 属性 上,如下所示:
public bool WarrantyIsActive => WarrantyDate > DateTime.Now;
isWarrantyActive
应该是计算的 属性 或计算的列。
计算得出属性:
public class Product
{
public DateTime WarrantyDate { get; set; }
public bool IsWarrantyActive => WarrantyDate >= DateTime.Now;
}
作为 table 中的计算列:
CREATE TABLE products
(
product_id int NOT NULL PRIMARY KEY,
warranty_date datetime NOT NULL,
is_warranty_active AS (CAST(CASE WHEN warranty_date >= GETDATE() THEN 1 ELSE 0 END AS bit))
)
或者在查询中计算:
SELECT
product_id, warranty_date,
(CAST(CASE WHEN warranty_date >= GETDATE() THEN 1 ELSE 0 END AS bit)) AS is_warranty_active
FROM
products
我正在搜索自动更新 table 中的布尔列的解决方案。该字段是“WarrantyActive”。我还有另一列“WarrantyDate”-> 保修期。 我想创建函数:if (WarrantyDate < DateTime.Now) -> 将 WarrantyActive 更改为 false.
public bool WarrantyIsActive { get; set; }
public DateTime WarrantyDate { get; set; }
当我使用 table 的 HttpGet 时,我应该在代码中执行此操作并检查吗?或者在 MSSQL 中有没有更好的方法自动检查这个值?
您可以 check/set 直接在 属性 上,如下所示:
public bool WarrantyIsActive => WarrantyDate > DateTime.Now;
isWarrantyActive
应该是计算的 属性 或计算的列。
计算得出属性:
public class Product
{
public DateTime WarrantyDate { get; set; }
public bool IsWarrantyActive => WarrantyDate >= DateTime.Now;
}
作为 table 中的计算列:
CREATE TABLE products
(
product_id int NOT NULL PRIMARY KEY,
warranty_date datetime NOT NULL,
is_warranty_active AS (CAST(CASE WHEN warranty_date >= GETDATE() THEN 1 ELSE 0 END AS bit))
)
或者在查询中计算:
SELECT
product_id, warranty_date,
(CAST(CASE WHEN warranty_date >= GETDATE() THEN 1 ELSE 0 END AS bit)) AS is_warranty_active
FROM
products