繁体   English   中英

T-SQL在现有表中添加新列,并从另一个现有列填充值

[英]T-SQL Add new column in existing table and fill with value from two another existing column

我有一个表test其中包含以下列: idstartDatestopDatestartOvertimestopOvertime

startDatestopDate的类型为datetime和startOvertimestopOvertime的类型为time(7)

我想创建之日起,部分新列stopDate和时间部分startOvertime并复制到一个新创建的列test-fill

如果我使用公式(stopDate,startOvertime),则新的datetime列的值不正确。 有什么建议?

如果您始终希望新列包含此信息,则可以使用计算列:

alter table test add test-fill as
    (cast(cast(startDate as date) as datetime) + cast(overtime as datetime));

这实际上并没有添加新列。 它只是在您需要时计算值。

这应该这样做:

alter table [table-name] add [test-fill] datetime

update [table-name]
set [test-fill] = cast(startDate as date) + cast(stopOvertime as datetime)

首先,我们向表中添加列,然后我们使用数据更新创建的单元格。

ALTER TABLE TEST ADD NEWCOL DATETIME;
UPDATE TEST
SET NEWCOL = CAST((CAST(CAST(stopDate as date) as varchar(10))+' '+CAST(CAST(startOvertime as time) as varchar(10))) as DATETIME);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM