在SQL Server中附加数据

时间:2014-08-20 00:58:17

标签: sql-server tsql append

问题:我的表中有一个名为DOB的列。它很好......出生日期,但格式如04/22/1987。我想将它们更改为19870422,这需要将4位数年份移到单元格的前面并删除/标记并且不留空格。

任何有效的建议都是非常感谢。谢谢大家!

3 个答案:

答案 0 :(得分:0)

选择转换(char(8),dob,112)dob

答案 1 :(得分:0)

因此,您希望更新日期列中的所有行,基本上更新现有列

UPDATE YourTable SET YourNewColumn = CONVERT(DATETIME,YourOldColumn,112)

答案 2 :(得分:0)

如果您的表格被称为Foo且您的列名称为DOB

Update Foo
Set DOB = Substring(DOB, 7, 4) + Substring(DOB, 1, 2) + Substring(DOB, 4, 2);

这里是SQL Fiddle

请注意,这会更新表中所有行的DOB列。因此,在将其更改为MM/DD/YYYY之前,请确保所有数据均采用YYYYMMDD格式。

请注意Substring()函数有三个参数:

  1. 输入(通常是文本,但可以是二进制)
  2. 起点(基于一个)
  3. 要返回的总字符数。
  4. 因此,表达式Substring(DOB, 7, 4)从第七个位置(年初)开始,需要四个字符(四个字符的年份。)