Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个日期列上的sql server 2008函数_Sql_Sql Server 2005 - Fatal编程技术网

两个日期列上的sql server 2008函数

两个日期列上的sql server 2008函数,sql,sql-server-2005,Sql,Sql Server 2005,我想为一个包含三列的表创建一个函数,如下所示: insertDate datetime updateDate datetime activity integer 我想通过取两个日期列的差值来更新活动列…基本上updateDate-insertDate=活动列中的活动天数。我不知道如何启动它,每当插入新的insertDate或updateDate时,它都需要运行。由于此操作所需的所有数据都在表的同一行中,您可以创建一个。如果希望在行更新时更新实际列值,则需要查看。由于此操作所需的所有数据都在

我想为一个包含三列的表创建一个函数,如下所示:

insertDate datetime
updateDate datetime
activity   integer

我想通过取两个日期列的差值来更新活动列…基本上updateDate-insertDate=活动列中的活动天数。我不知道如何启动它,每当插入新的insertDate或updateDate时,它都需要运行。

由于此操作所需的所有数据都在表的同一行中,您可以创建一个。如果希望在行更新时更新实际列值,则需要查看。

由于此操作所需的所有数据都在表的同一行中,因此可以创建一个。如果您想要在行更新时更新实际列值,则需要查看。

您可以使用默认值
GETDATE()
填充
[InsertDate]
,并在更新列时使用当前日期填充
[updatedatedate]
(因为您正在使用过程(wink),这真的很容易控制)。如果您不使用过程并且想要控制。在
[UpdateDate]
列中,可以使用触发器填充该列

活动
列设为计算字段:

DATEDIFF(day, [InsertDate], [UpdateDate])


从MSDNabout计算列:


您可以使用默认值
GETDATE()
填充
[InsertDate]
,并在更新列时使用当前日期填充
[UpdateDate]
(因为您使用的是过程(wink),这非常容易控制)。如果您不使用过程并且想要控制。在
[UpdateDate]
列中,可以使用触发器填充该列

活动
列设为计算字段:

DATEDIFF(day, [InsertDate], [UpdateDate])


从MSDNabout计算列:


将此代码放入触发器中

update MyTable
    set updateDate = GETDATE()
        , activity = select (DATEDIFF(DAY, insertDate, GETDATE()))

将此代码放入触发器中

update MyTable
    set updateDate = GETDATE()
        , activity = select (DATEDIFF(DAY, insertDate, GETDATE()))

+1用于计算的场概念。我没有想到这一点,甚至比触发式方法更好+1用于计算的场概念。我没有想到这一点,甚至比触发式方法更好