如何插入获取日期名称的select语句

时间:2011-10-26 07:52:51

标签: sql sql-server-2008 datetime select insert

我已经用

创建了一个表
create table tblConsultationHour
(
    consultationID int primary key identity,
    cday varchar(50),
    cstartTime datetime,
    cendTime datetime
)

我想将日期名称的值插入cday,我应该知道日期部分的cstarttime中的日期名称。我知道如何使用此代码获取日期名称

SELECT DATENAME(dw,'2011-10-26 12:35:29.123')

我可以知道如何在飞行中插入此内容吗? 或者可以这样插入吗?

insert into tblConsultationHour values 
(SELECT DATENAME(dw,'2011-10-26 12:35:29.123'),'2011-10-26 12:35', '2011-10-26 14:35')

2 个答案:

答案 0 :(得分:2)

你很亲密:

INSERT INTO tblConsultationHour 
SELECT DATENAME(dw,'2011-10-26 12:35:29.123'),'2011-10-26 12:35', '2011-10-26 14:35'

另请查看此问题以获取其他示例:SQL INSERT from SELECT

答案 1 :(得分:1)

另一种需要考虑的方法是计算列:

 create table tblConsultationHour
    (
        consultationID int primary key identity,
        cday as DateName(dw,cStarttime),
        cstartTime datetime,
        cendTime datetime
    )

在您的示例中,cDay是一个冗余列。如上所述,如果有人更改了cStarttime值,他们还必须记住更新cDay字段。虽然它可能不会发生或成为一个问题,但要记住这一点......