我刚刚在表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
关键字
有人可以指导我哪里出了问题吗?还是应该在“时间戳记”列中插入数据?
我是编码领域的新手,实际上只是学习中,如果您能保持简单,我将不胜感激。
答案 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
。