SQL 表中有日期列,想在原表中插入星期列,并填充星期值

oiph 2020-04-02 05:07:36
SQL Server 2008,现有表TB,表TB中含有“日期”列。
想在原表中增加“星期”列,并填充星期值。求语句。
原表代码:
create table TB(日期 nvarchar(255))
insert into TB select '2019-04-20'
insert into TB select '2019-04-25'
insert into TB select '2020-04-02'

想达成的效果是,通过语句运行,在原表中内容直接变成:
日期 星期
2019-04-20 六
2019-04-25 四
2020-04-02 四
...全文
534 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
oiph 2020-04-04
  • 打赏
  • 举报
回复
引用 8 楼 RINK_1 的回复:
[quote=引用 6 楼 oiph 的回复:] [quote=引用 5 楼 RINK_1 的回复:] [quote=引用 4 楼 oiph 的回复:] [quote=引用 3 楼 RINK_1 的回复:] [quote=引用 2 楼 oiph 的回复:] [quote=引用 1 楼 RINK_1 的回复:] 增加一个计算列,根据“日期”字段来计算星期。
增加列的语句知道,不知道后续操作语句。请指点为谢![/quote] ALTER TABLE TabelName ADD 星期 AS CASE WHEN DATEPART(WEEKDAY,日期)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,日期)=2 THEN '星期一' 类似这样试试[/quote] 操作失败~ [/quote] CREATE TABLE #T (DT DATE) ALTER TABLE #T ADD WD AS CASE WHEN DATEPART(WEEKDAY,DT)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,DT)=2 THEN '星期一' END 以上我可以运行成功,你CASE WHEN语句是不是没写正确。[/quote] 我实在小白,复制你的语句,可以运行,但看不出什么改变。看不到结果。 把TABLE改成表名TB也不行。[/quote] 你就按以下的建表和加字段完成后,往表里插入数据,只插入日期,再查表看结果

CREATE TABLE TB
(日期 DATE)

ALTER TABLE TB ADD 星期 AS CASE WHEN DATEPART(WEEKDAY,日期)=1 THEN '星期日' 
                              WHEN DATEPART(WEEKDAY,日期)=2 THEN '星期一' 
                              WHEN DATEPART(WEEKDAY,日期)=3 THEN '星期二' 
                              WHEN DATEPART(WEEKDAY,日期)=4 THEN '星期三'
                              WHEN DATEPART(WEEKDAY,日期)=5 THEN '星期四'
                              WHEN DATEPART(WEEKDAY,日期)=6 THEN '星期五'
                              WHEN DATEPART(WEEKDAY,日期)=7 THEN '星期六' END


INSERT INTO TB
SELECT '2020-04-03'
[/quote] 多谢大神!完美解决!祝一生平安喜乐~
RINK_1 2020-04-03
  • 打赏
  • 举报
回复
引用 6 楼 oiph 的回复:
[quote=引用 5 楼 RINK_1 的回复:] [quote=引用 4 楼 oiph 的回复:] [quote=引用 3 楼 RINK_1 的回复:] [quote=引用 2 楼 oiph 的回复:] [quote=引用 1 楼 RINK_1 的回复:] 增加一个计算列,根据“日期”字段来计算星期。
增加列的语句知道,不知道后续操作语句。请指点为谢![/quote] ALTER TABLE TabelName ADD 星期 AS CASE WHEN DATEPART(WEEKDAY,日期)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,日期)=2 THEN '星期一' 类似这样试试[/quote] 操作失败~ [/quote] CREATE TABLE #T (DT DATE) ALTER TABLE #T ADD WD AS CASE WHEN DATEPART(WEEKDAY,DT)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,DT)=2 THEN '星期一' END 以上我可以运行成功,你CASE WHEN语句是不是没写正确。[/quote] 我实在小白,复制你的语句,可以运行,但看不出什么改变。看不到结果。 把TABLE改成表名TB也不行。[/quote] 你就按以下的建表和加字段完成后,往表里插入数据,只插入日期,再查表看结果

CREATE TABLE TB
(日期 DATE)

ALTER TABLE TB ADD 星期 AS CASE WHEN DATEPART(WEEKDAY,日期)=1 THEN '星期日' 
                              WHEN DATEPART(WEEKDAY,日期)=2 THEN '星期一' 
                              WHEN DATEPART(WEEKDAY,日期)=3 THEN '星期二' 
                              WHEN DATEPART(WEEKDAY,日期)=4 THEN '星期三'
                              WHEN DATEPART(WEEKDAY,日期)=5 THEN '星期四'
                              WHEN DATEPART(WEEKDAY,日期)=6 THEN '星期五'
                              WHEN DATEPART(WEEKDAY,日期)=7 THEN '星期六' END


INSERT INTO TB
SELECT '2020-04-03'
oiph 2020-04-03
  • 打赏
  • 举报
回复
继续求语句,表名:TB,表TB中列名为:日期。 想在原表中增加一个列:星期。并在星期中对应日期显示出星期。 求大神帮写语句为谢。本人小白,烦请在语句中直接写现在有的表名和列名。!!! 原表代码: create table TB(日期 nvarchar(255)) insert into TB select '2019-04-20' insert into TB select '2019-04-25' insert into TB select '2020-04-02' 想达成的效果是,通过语句运行,在原表中内容直接变成: 日期 星期 2019-04-20 六 2019-04-25 四 2020-04-02 四
oiph 2020-04-02
  • 打赏
  • 举报
回复
引用 5 楼 RINK_1 的回复:
[quote=引用 4 楼 oiph 的回复:] [quote=引用 3 楼 RINK_1 的回复:] [quote=引用 2 楼 oiph 的回复:] [quote=引用 1 楼 RINK_1 的回复:] 增加一个计算列,根据“日期”字段来计算星期。
增加列的语句知道,不知道后续操作语句。请指点为谢![/quote] ALTER TABLE TabelName ADD 星期 AS CASE WHEN DATEPART(WEEKDAY,日期)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,日期)=2 THEN '星期一' 类似这样试试[/quote] 操作失败~ [/quote] CREATE TABLE #T (DT DATE) ALTER TABLE #T ADD WD AS CASE WHEN DATEPART(WEEKDAY,DT)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,DT)=2 THEN '星期一' END 以上我可以运行成功,你CASE WHEN语句是不是没写正确。[/quote] 我实在小白,复制你的语句,可以运行,但看不出什么改变。看不到结果。 把TABLE改成表名TB也不行。
RINK_1 2020-04-02
  • 打赏
  • 举报
回复
引用 4 楼 oiph 的回复:
[quote=引用 3 楼 RINK_1 的回复:] [quote=引用 2 楼 oiph 的回复:] [quote=引用 1 楼 RINK_1 的回复:] 增加一个计算列,根据“日期”字段来计算星期。
增加列的语句知道,不知道后续操作语句。请指点为谢![/quote] ALTER TABLE TabelName ADD 星期 AS CASE WHEN DATEPART(WEEKDAY,日期)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,日期)=2 THEN '星期一' 类似这样试试[/quote] 操作失败~ [/quote] CREATE TABLE #T (DT DATE) ALTER TABLE #T ADD WD AS CASE WHEN DATEPART(WEEKDAY,DT)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,DT)=2 THEN '星期一' END 以上我可以运行成功,你CASE WHEN语句是不是没写正确。
oiph 2020-04-02
  • 打赏
  • 举报
回复
引用 3 楼 RINK_1 的回复:
[quote=引用 2 楼 oiph 的回复:] [quote=引用 1 楼 RINK_1 的回复:] 增加一个计算列,根据“日期”字段来计算星期。
增加列的语句知道,不知道后续操作语句。请指点为谢![/quote] ALTER TABLE TabelName ADD 星期 AS CASE WHEN DATEPART(WEEKDAY,日期)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,日期)=2 THEN '星期一' 类似这样试试[/quote] 操作失败~
RINK_1 2020-04-02
  • 打赏
  • 举报
回复
引用 2 楼 oiph 的回复:
[quote=引用 1 楼 RINK_1 的回复:] 增加一个计算列,根据“日期”字段来计算星期。
增加列的语句知道,不知道后续操作语句。请指点为谢![/quote] ALTER TABLE TabelName ADD 星期 AS CASE WHEN DATEPART(WEEKDAY,日期)=1 THEN '星期日' WHEN DATEPART(WEEKDAY,日期)=2 THEN '星期一' 类似这样试试
oiph 2020-04-02
  • 打赏
  • 举报
回复
引用 1 楼 RINK_1 的回复:
增加一个计算列,根据“日期”字段来计算星期。
增加列的语句知道,不知道后续操作语句。请指点为谢!
RINK_1 2020-04-02
  • 打赏
  • 举报
回复
增加一个计算列,根据“日期”字段来计算星期。

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧