【发布时间】:2016-10-28 14:45:05
【问题描述】:
【问题讨论】:
-
一旦你解决了这个问题,你应该考虑尽快离开这个设计。您应该将日期存储在日期数据类型中。这就是它们的目的。
-
那么对于示例值,结果应该是什么?
-
结果:2016 年 10 月 28 日
标签: sql-server date
【问题讨论】:
标签: sql-server date
使用可以DATEFROMPARTS函数
Select DATEFROMPARTS(Year,Month,Day) as Dates
From yourtable
如果您使用的时间少于 2012 年,那么
Select cast(cast(year as char(4))+'-'+cast(month as varchar(2))+'-'+cast(day as varchar(2)) as date) as dates
From yourtable
【讨论】:
这是一种非常糟糕的存储日期信息的方式。使用它是一种严重的痛苦,几乎不可能验证。你真的应该为这种类型的事情使用本机日期数据类型。
这为您的示例生成了所需的输出。我想这就是你要找的。p>
create table #SomeDate
(
MyDay int
, MyWeek int
, MyMonth int
, MyYear int
)
insert #SomeDate
select 5, 4, 10, 2016
select dateadd(day, s.MyDay + 1, dateadd(week, s.MyWeek - 1, dateadd(month, s.MyMonth - 1, dateadd(year, s.MyYear - 1900, 0))))
from #SomeDate s
drop table #SomeDate
【讨论】: