在TIMESTAMP中插入数据

时间:2018-12-12 18:19:35

标签: sql sql-server

我刚刚在表SCHEDULE中创建了数据类型为COURSE_OFFERING的新列TIMESTAMP

在将数据插入列(WHERE的主键是Course_ID)时,我正在使用以下代码:

INSERT INTO COURSE_OFFERING ('SCHEUDLE')
VALUES (TO_TIMESTAMP ('07-JAN-2019 07:00:00','DD-MON-YYYY HH:MI:SS'))
WHERE COURSE_ID = '13477';

但是SQL Server响应错误

  

缺少SELECT关键字

有人可以指导我哪里出了问题吗?还是应该在“时间戳记”列中插入数据?

我是编码领域的新手,实际上只是学习中,如果您能保持简单,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

问题显然来自Oracle环境,但这是有多少人在SQL Server中这样做:

-其中t1为datetime2类型,日期为mm / dd / yyyy

INSERT INTO #X56 (T1)
SELECT CONVERT(datetime2,'07/01/2019 07:00:00', 103)

答案 1 :(得分:0)

  

还是我应该使用在时间戳列中插入数据

在我看来,他所需要的只是UPDATE,因为他只想填写此列,并且只填写已有的行(他试图使用WHERE子句)。

所以语法应该是这样的:

update COURSE_OFFERING
set SCHEUDLE = '20190107 07:00:00'
where COURSE_ID = '13477';

但是问题是他来自Oracle世界(注意TO_TIMESTAMP),所以创建的列的类型错误。他想添加datetime列,但使用了Oracle中具有另一含义的SQL Server数据类型。

所以他现在应该做的是首先在错误的列中添加

alter table COURSE_OFFERING drop column SCHEUDLE;

然后添加正确的列:

alter table COURSE_OFFERING add SCHEUDLE datetime;

只有在这两个步骤之后,才执行update