求一年月日的计算列

wumeng53521 2010-02-01 12:34:04
输入的时候 年 月 日 都是分开输入的,现在需要一个计算列,如果 年 月 日 都填写了计算列就得出日期
如果其中有一项为空,计算列都为空
求各位大哥帮忙
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xman_78tom 2010-02-01
  • 打赏
  • 举报
回复

create table #
(y int, m int, d int, ymd as cast(ltrim(y)+'-'+ltrim(m)+'-'+ltrim(d) as datetime));

insert into # (y,m,d) values(1999,12,1);
insert into # (y,d) values(1999,1);

select * from #;
/*
1999 12 1 1999-12-01 00:00:00.000
1999 NULL 1 NULL
*/
叶子 2010-02-01
  • 打赏
  • 举报
回复

declare @year varchar(10)
set @year='2010'
declare @month varchar(10)
set @month='01'
declare @day varchar(10)
set @day='01'

select @year+'-'+@month+'-'+@day as theday
go
declare @year varchar(10)
set @year='2010'
declare @month varchar(10)
set @month='01'
declare @day varchar(10)
set @day=null

select @year+'-'+@month+'-'+@day as theday
xman_78tom 2010-02-01
  • 打赏
  • 举报
回复

create table # (y int, m int, d int);

insert into # (y,m,d) values(1999,12,1);
insert into # (y,d) values(1999,1);

select cast(ltrim(y)+'-'+ltrim(m)+'-'+ltrim(d) as datetime) from #;
/*
1999-12-01 00:00:00.000
NULL
*/
wumeng53521 2010-02-01
  • 打赏
  • 举报
回复
表是已经建好的,我想光输出ymd这一列,不通过新建表,可以么?
xman_78tom 2010-02-01
  • 打赏
  • 举报
回复
转为什么列?ymd 不就是计算列吗?
wumeng53521 2010-02-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xman_78tom 的回复:]
SQL codecreatetable #
(yint, mint, dint, ymdascast(ltrim(y)+'-'+ltrim(m)+'-'+ltrim(d)asdatetime));insertinto # (y,m,d)values(1999,12,1);insertinto # (y,d)values(1999,1);select*from #;/*
1999 12 ?-
[/Quote]

我是新手。。这个转为列怎么转啊?

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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