【问题标题】:How to insert select statement of get the day name如何插入获取日期名称的选择语句
【发布时间】:2011-12-15 13:06:58
【问题描述】:

我已经用

创建了一个表
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')

【问题讨论】:

  • 因为两个回复也正确,并且计算脚本更好,因为我不知道这样的功能是否可用 =D 我相信自动计算脚本会更好,而无需总是插入选择代码。

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


【解决方案1】:

你很亲密:

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

【讨论】:

  • 谢谢老兄=D和很好的参考^^
【解决方案2】:

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

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

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

【讨论】:

  • 谢谢提醒,伙计 =D,因为它在我的作业问题中已说明,所以我必须这样做@.@ 我发现您的解决方案会更好,但想知道,在 cstartTime 字段时值会改变吗正在编辑??
  • 如果cStartTime字段被更新,cDay也会被更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 2015-03-15
相关资源
最近更新 更多