我尝试创建一个表来作为几个表的控件,这些表的结构基于一天(24 小时)分为 30 分钟间隔。
在另一个表中,我有一个活动列表,每个活动最后 30 分钟。关键是日历中不能有 2 个活动发生冲突。
为此,请创建此控制表。
SQL 服务器
CREATE TABLE dbo.Control_Actividades
(
Id_Tiempo datetime NOT NULL PRIMARY KEY,
Id_Actividad varchar(50) NULL
) ON [PRIMARY]
关键是我希望该字段Id_Tiempo
每隔 30 分钟自动递增一次。我在各个网站上搜索过,但找不到任何关于此的文章。
更多细节。
我很抱歉没有详细说明我正在做的事情,但它可以在未来的活动日志中进行总结。我只是想澄清是否可以进行 DateTime 自动增量。我知道这是不可能的。
我知道在日期级别没有自动增量,我也不清楚你需要什么,因为最终你可以拥有一个
INT IDENTIY(0,1800)
基本上在 1800 范围内增加的自动增量,以秒为单位测量正好是 30 分钟,然后简单地使用DATEADD
将 id 以秒为单位添加到任何日期。但是,是的,是的或是的,您想要一个具有该位移的日期字段,使用我提到的方法,您可以做一些更接近您想要的事情:
这定义了一个字段
DateId
,每次插入都会生成一个比01-01-2017
. 但这有一个问题,该字段是“计算的”,实际上它并不存在,所以我们不能在索引或主键中使用它,因为我们需要它是“持久的”,这也很复杂,因为它DATEADD(s, ID, '20170101')
是不确定的,也就是说,引擎不能保证函数返回的值总是相同的,为了使其具有确定性和持久性,我们必须在表中创建一个额外的日期字段,如下所示:无论我们将如何创建表,我们都可以执行以下操作:
输出将是这样的:
我向您重复一遍,我很难看到有这样的 Date 字段的必要性,并且您在
IDENTITY
经典方面进行调查,因为我告诉您的不是非常理想的。