从另一栏中更新除年份以外的日期和月份

时间:2018-10-25 03:12:57

标签: sql-server

我在SQL Server 2000中有一个带有两个datetime列的表,我只想更新column_a中的日期和月份,而column_b中的日期和月份除外(年份)。

例如:

column_a
----------
1/2/2009
1/2/2002
1/2/2016
3/1//1998
11/12/1987

column_b
---------
31/12/2015
11/10/2005
27/6/2017
31/12/2010
31/12/2011

所需结果:

31/12/2009
11/10/2002
27/6/2016
31/12/1998
31/12/1987

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在SQL Server 2000中应该使用日期文字,样式112返回YYYYMMDD中的日期,因此取其中一个的YYYY并添加到另一个的MMDD并将其转换为{ {1}}。

datetime

在更高版本中,这要容易得多。 SQL Server 2000对我已经死了。

使用DATEFROMPARTS(年,月,日)

update tablex
set columnb = convert(datetime(left(convert(varchar, column_a, 112), 4) + 
                               right(convert(varchar, column_b, 112), 4), 112)