【问题标题】:Insert into SQL Server timestamp插入 SQL Server 时间戳
【发布时间】:2017-08-29 20:16:14
【问题描述】:

我有 table1table2,我正在根据表 1 + 2 中的行将数据插入到 table3。我需要在数据插入时将证据放入表 3。

表 1

Column1
a
b
d
e
g
h
i

表2

Column1
a
b
c
d
e
f

代码:

INSERT INTO [dbo].[table3](column1)
    SELECT column1
    FROM [dbo].[table2]
    WHERE NOT EXISTS (SELECT
                      FROM [dbo].[table1]
                      WHERE column1 = column1);

结果:

表3

Column1  Column2
c
f

我需要进入存在表和存在列(varchar(50)timestamp)任何格式的时间,这将显示使用我当前的脚本将值插入表的时间。

例子:

表3

Column1 Column2
c       4/4/2017 
f       4/4/2017

几天后表格应该是这样的:

表3

Column1 Column2
c       4/4/2017 
f       4/4/2017
x       5/4/2017  
y       6/4/2017
z       10/4/2019

感谢您升级我的脚本:

类似:

INSERT INTO table3 (Column2) 
VALUES (CURRENT_TIMESTAMP);

【问题讨论】:

  • 永远不要将日期时间信息存储在 varchar 列中。这是一个可怕的想法。对于此类信息,我们有一个日期时间数据类型。忘记TIMESTAMP,它与时间或日期无关。对于手头的问题,您可以使用默认的 getdate() 向 datetime 列添加非空约束,或者在 insert 语句中使用 getdate() 提供当前时间。

标签: sql sql-server timestamp insert-into


【解决方案1】:

为如下表添加一些审核列


[StatusCode] [varchar](1) NOT NULL,
[CreatedDate] [datetime] NOT NULL CONSTRAINT [DF_ConstraintName_CreatedDate]  DEFAULT (getdate()),
[LastModifiedByUserId] [int] NULL ,
[LastModifiedDate] [datetime] NULL,

【讨论】:

    【解决方案2】:

    只需ADDALTER TABLE TABLE3 ADD COLUMN updated Datetime2 DEFAULT GETDATE() 在 table3 中再添加一列

    就像你所做的那样插入,每次你在 table3 中插入​​一个新行时,最后一个字段 updated 将填充当前日期和时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 2012-05-02
      • 2017-09-04
      • 2014-08-08
      • 2017-05-29
      相关资源
      最近更新 更多