在SQL Server 2012中自动添加当前时间

时间:2015-05-05 19:36:37

标签: sql-server

我的表格中包含数据类型为time(4)的列。

当我在表中插入值时,我需要将当前时间(毫秒)(无日期)自动插入该列。我试过时间戳,约会时间......但没有任何成功。

2 个答案:

答案 0 :(得分:5)

如果您想在SQL Server 2012中获取当前时间,只需使用CAST运算符即可实现此目的:

SELECT  
   CAST(SYSDATETIME() AS TIME(4))

这将获得当前日期&时间,并根据需要将其投射到时间。

要在添加新行时自动输入时间值,您可以在default constraint中使用上述表达式。例如:

DECLARE @T AS table
(
    SomeValue integer NOT NULL,
    TheTime time(4) NOT NULL 
        DEFAULT CAST(SYSDATETIME() AS time(4))
);

INSERT @T (SomeValue)
VALUES (1);

SELECT
    SomeValue,
    TheTime
FROM @T;

答案 1 :(得分:2)

据我了解,这是您可能正在寻找的内容:

SELECT GETDATE() 'Today',
       CONVERT(TIME(4),GETDATE()) 'time_only'

您可以在insert语句中使用上述转换,如下所示:

INSERT INTO TABLEA (
     column1
    ,column2
    ,record_insert_time
    )
VALUES (
     value1
    ,value2
    ,CONVERT(TIME(4), GETDATE())
    );