sql - 是否可以在 SQL Server 中自动增加数据类型“time(7)”?
问题描述
目前我有一个表,其中包含一行“时间”,其数据类型为“时间(7)”。我已经为 05:00:00 设置了默认值,因为那是我希望开始时间的地方。对于表格中输入的每个数据,时间必须“增加” 2 分钟。我想知道是否有任何方法可以自动增加它,所以它会自动将时间增加 2 分钟?
我试图研究 Microsoft SQL Server Management Studio(我使用的)中的一些功能,但如果可能的话,还没有真正找到一种自动递增它的方法。
解决方案
- 创建一个在插入时更新插入值的触发器
- 获取上一个条目并将 2 分钟添加到新行
例子:
Create TRIGGER updatetime
ON dbo.TimeTable
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @NewTime time
SELECT Top 1 @NewTime = DATEADD(MINUTE, 2,tbl.tmt_time)
FROM (
SELECT TOP 2 *
FROM [dbo].[TimeTable]
ORDER BY tmt_Id DESC) as tbl
ORDER BY tmt_ID ASC
UPDATE tm
SET tmt_time = @NewTime
FROM [dbo].[TimeTable] tm
INNER JOIN inserted i ON i.tmt_ID = tm.tmt_ID
END
GO
您也可以使用滞后而不是前 1 前 2 选择。此查询还会将 2 分钟添加到您的第一个条目。因此,您可能希望使用默认值播种第一行。
参考:
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql https://docs.microsoft.com/en-us/sql/t-sql/functions /lag-transact-sql https://docs.microsoft.com/en-us/sql/t-sql/queries/update-transact-sql
推荐阅读
- microsoft-teams - 是否可以以编程方式(例如使用图表)将选项卡添加到聊天中
- hibernate - hibernate + 单表继承 + discriminatorColumn --> DiscriminatorType 无法解析为变量
- operating-system - 为未加密的文件设置密码
- python - 迭代地在二叉树中插入值
- php - 如何在不使用会话和调用方法的情况下将变量从函数传递到控制器中的另一个函数
- python - PyQt5:无法设置来自不同文件的类
- charts - 如何更改 resetZoomButton 文本(Vaadin 图表)?
- uicollectionview - 使用不同的数据源添加、更改和删除
- jupyter-notebook - 禁用从 jupterlab 和笔记本下载的选项
- arrays - 同一函数中的常量会抛出未解析的标识符