Sql server 2008 当另一列的时间戳小于当前时间的X小时数时,如何更新该列
我有一个名为Tracker的表,它有多个列,但如果另一列中的时间戳是当前时间减去10小时,我真的只想将一列(状态)重置回0 这是我的问题Sql server 2008 当另一列的时间戳小于当前时间的X小时数时,如何更新该列,sql-server-2008,Sql Server 2008,我有一个名为Tracker的表,它有多个列,但如果另一列中的时间戳是当前时间减去10小时,我真的只想将一列(状态)重置回0 这是我的问题 update Tracker set Status = '0' Where status <> '0' and lastlogintime <= dateadd(HH, -10,CURRENT_TIMESTAMP) 更新跟踪器 设置状态='0' 如果状态为“0”且lastlogintime=dateadd(HH,-10,当前时间戳),则不会
update Tracker
set Status = '0'
Where status <> '0' and lastlogintime <= dateadd(HH, -10,CURRENT_TIMESTAMP)
更新跟踪器
设置状态='0'
如果状态为“0”且lastlogintime=dateadd(HH,-10,当前时间戳)
,则不会将状态重置回0
有人能帮我一下吗?
谢谢。问题是
当前时间戳返回的值是日期时间
。你需要像这样做
CAST(lastlogintime AS TIME) <= CAST(DATEADD(hh, -10, CURRENT_TIMESTAMP) AS TIME)
CAST(lastlogentime AS TIME)问题是CURRENT\u TIMESTAMP
返回的值是DATETIME
。你需要像这样做
CAST(lastlogintime AS TIME) <= CAST(DATEADD(hh, -10, CURRENT_TIMESTAMP) AS TIME)
CAST(lastlogentime AS TIME)创建一个update触发器
我创建了一个update触发器,用于在每次有人登录应用程序时更新lastlogentime。由于许可证有限,我们正在尝试运行一个自动查询,以便每晚晚上10点运行,以重置中午之前登录的所有会话。创建一个更新触发器
我创建了一个更新触发器,以便在每次有人登录应用程序时更新lastlogintime。由于许可证有限,我们正在尝试运行一个自动查询,每天晚上10点运行,以重置中午之前登录的所有会话。太棒了,成功了。我将答案标记为有用,但因为我的代表分数太低,所以不会显示:(太棒了,这很有效。我将答案标记为有用,但因为我的代表分数太低,所以不会显示:(