Как вставить оператор выбора получить название дня - PullRequest
1 голос
/ 26 октября 2011

У меня есть таблица с

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 ]

2 голосов
/ 26 октября 2011

Вы были близки:

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 из SELECT

1 голос
/ 26 октября 2011

Другой подход, который нужно рассмотреть, - это вычисляемый столбец:

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

В вашем примере cDay является избыточным столбцом.Как написано, если кто-то изменяет значение cStarttime, он также должен не забыть обновить поле cDay.Хотя это может не произойти или быть проблемой, об этом следует помнить ...

...