我是SQL Server和学习的新手。我遇到了一个问题。这是我的问题的情景。
有2个表,一个是Addresses
,另一个是Members
。
以前,我有两列收集Addresses
的日期,一个是月份,另一个是一年。
但是最近我们决定添加另外两列来收集这种日期格式(mm / dd / yyyy),而不是插入另一个数据。我想使用2个旧日期列中的旧数据,即月份和年份。并使用ID
表和Members
表中的标识Address
,即G1,G2,G3。此标识ID
是主键。
我决定手动完成,但我意识到我们获得了大量数据,如果我一个接一个地完成它将需要永远完成。知道我该怎么做?我正在使用Microsoft SQL Server Management Studio。
所以基本上应该是这样的。
所有G1应该是这样的
答案 0 :(得分:0)
给出像
这样的表格create table dbo.Addresses
(
MonthColumn varchar(30),
YearColumn int
)
您可以向表中添加计算列。由于您将月份作为名称,您最好的选择可能是将日期作为字符串连接,然后将其转换为日期(注意,如果它是整数,则可以使用dateadd()
或,如果您正在运行SQL 2012或更近期的datefromparts()
alter table dbo.addresses
add MonthYear as convert(date, '01 ' + MonthColumn + ' ' + cast(YearColumn as char(4)), 106) -- 106 is the mask for "dd mon yyyy"
这确实依赖于标准日期名称的月份。同样,如果您能够将月份存储为整数,那么生活将变得更加容易。但事实上,这就是我接近它的方式。