如何在 sql 中自动更改位值

本文关键字:sql | 更新日期: 2023-09-27 18:30:51

嗨,编码器在我的应用程序中,我有一些用户填写的详细信息,输入详细信息后,按提交按钮,它将存储在数据库中。我有与该表单关联的位值,因此当用户输入详细信息并单击提交按钮位时,位变为真。

想要的是有一天之后,那位自动变成假的,我该怎么做

如何在 sql 中自动更改位值

SQL Server没有办法执行"经过时间"触发器。您只能在插入/更新/删除等上触发数据更改...

我的建议是,与其存储位值,不如存储datetime

因此,当用户填写表单并勾选一个框时,不要存储位值,而是将DateTime列设置为getdate()

然后更改依赖于此列的任何逻辑来测试该>列中的值是否与当前时间相差 1 天。

if( DateDiff(day, your_column, getdate()) >= 1 ) --more than 1 day has elapsed.
我想

提出一种不同的方法。

这就是我要做的:

我将存储单击发生的日期和时间,而不是存储实际的布尔值。因此,我将使用Date列,而不是bit列。

稍后,当试图确定(被动地,而不是主动地)一天是否已经过去了我会从当前日期时间中减去该特定列中的存储值,并检查它是否产生一整天。

它是这样的:

// instead of this
row[column] = true;
// do this
row[other_column] = DateTime.UtcNow;

以及要测试值的位置:

// instead of this
if ((bool)row[column]) { ... }
// do this
DateTime dateAndTimeOfClick = (DateTime)row[other_column];
bool isStillTrue = DateTime.UtcNow - dateAndTimeOfClick < TimeSpan.FromDays(1);
if (isStillTrue) { ... }
相关文章:
  • 没有找到相关文章