如何将TimeStamp(当前日期和当前时间)插入到Microsoft SQL Server表的日期时间字段中?
问题描述:
我不是那么喜欢数据库,我试图执行一个简单的插入查询到Microsoft SQL Server数据库中的表中的以下问题。如何将TimeStamp(当前日期和当前时间)插入到Microsoft SQL Server表的日期时间字段中?
因此,此表包含名为TIMESTAMP
的datetime
列,其中必须包含当前日期和当前时间。
我想用这种方式做,但不能工作:
INSERT INTO TirAliquotaRamoI (DataElaborazione,
TassoLordoAnnuoAppl,
TassoGiornaliereNetto,
Aliquota,
DataInizio,
DataFine,
TIMESTAMP)
VALUES ('2015-08-01 00:00:00',
0,
0,
1,
'2015-08-01 00:00:00',
'2100-12-32',
TIMESTAMP);
它给我以下错误信息:
16时49分10秒[INSERT - 0行(秒),0.000秒]
错误代码:207,SQL状态:S0001 无效的列名称'TIMESTAMP'。
为什么?我错过了什么?哪里不对?我该如何解决这个问题?
答
你是insert
ing列值使用values
。所以他们都必须是恒定的。它们不能是列名。因此你会得到错误。
将查询更改为插入GETDATE()
(返回带有时间戳的当前日期)到TIMESTAMP列中。
INSERT INTO TirAliquotaRamoI (DataElaborazione,
TassoLordoAnnuoAppl,
TassoGiornaliereNetto,
Aliquota,
DataInizio,
DataFine,
TIMESTAMP)
VALUES ('2015-08-01 00:00:00',
0,
0,
1,
'2015-08-01 00:00:00',
'2100-12-32',
GETDATE());
timestamp是一种数据类型,不是可以调用的函数。 GETDATE()是你所追求的。 –
请注意,'TIMESTAMP'是一个SQL Server类型,它具有**没有任何**与时间。只是['rowversion'](https://technet.microsoft.com/en-us/library/ms182776(v = sql.110).aspx)的命名不明确,它是一个与时间无关的不断增加的整数或日期。 'TIMESTAMP'这个名字引起了很多混淆,因为像你这样的用户往往会把它与日期和时间联系起来。当前时间使用['GETUTCDATE()'](https://msdn.microsoft.com/zh-cn/library/ms178635.aspx)。并始终将UTC存储在数据库中。 –
@RemusRusanu我不同意你应该总是存储UTC值。有很多情况下,这不是最好的选择。 –