如何在SQL Server 2012中将A列(日期类型yyyy-MM-dd)与B列(char10类型)和C列(char10类型)组合,形成新的D列,其内容格式为B列接上A列日期转换成yyMMdd接上‘-’接上C列
时间: 2024-11-06 13:13:48 浏览: 15
SQLServer2008中的新日期数据类型
在 SQL Server 2012 中,可以使用 `CONCAT()` 或 `+` 运算符以及 `DATEPART()` 函数来组合日期和字符列。假设你有一个表叫做 `YourTable`,其中包含 A、B 和 C 列,你可以创建一个新的 D 列(datetime 类型)如下所示:
```sql
ALTER TABLE YourTable
ADD D datetime;
UPDATE YourTable
SET D = CONCAT(
DATEPART(yy, A) + '',
RIGHT('0' + CONVERT(varchar, DATEPART(dd, A), 10), 2),
'-',
B,
'-',
C
);
```
这段代码首先添加了一个新的列 D,然后更新行,将 A 列的日期部分(`yy` 和 `dd`)转换为两位数并附加到字符串 `'yyMMdd-'` 后面,接着连接 B 和 C 列。
请注意,这里假设 A 列的数据可以直接转换为 'yyMMdd' 的格式,如果需要处理其他日期格式(如 'yyyy-MM-dd'),可能需要先进行适当的格式转换。
阅读全文