如何在SQL Server 2012中将A列(日期类型yyyy-MM-dd)与B列(char10类型)和C列(char10类型)组合,形成新的D列,其内容格式为B列接上A列日期转换成yyMMdd接上‘-’接上C列
时间: 2024-11-06 08:13:48 浏览: 6
在 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'),可能需要先进行适当的格式转换。
相关问题
sql yyyy-mm-dd hh24
回答: 如果你想在SQL中将日期格式从yyyy-mm-dd转换为yyyy-mm-dd hh24,你可以使用以下方法之一。首先,你可以使用to_char函数将日期转换为指定格式的字符串,然后再进行拼接。例如,你可以使用以下语句将日期格式从yyyy-mm-dd转换为yyyy-mm-dd hh24: select to_char(to_date('2017-12-05','yyyy-mm-dd'),'yyyy-mm-dd hh24') from dual; 另外,你也可以使用concat函数将日期的小时部分拼接到日期字符串中。例如,你可以使用以下语句将日期格式从yyyy-mm-dd转换为yyyy-mm-dd hh24: select concat(to_date('2017-12-05','yyyy-mm-dd'),' ',to_char(to_date('2017-12-05','yyyy-mm-dd'),'hh24')) from dual;
#### 引用[.reference_title]
- *1* [[SQL]yyyymmdd类型与yyyy-mm-dd日期类型的相互转换](https://blog.csdn.net/TOMOCAT/article/details/84533551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [SQL转换日期格式dd-mm-yyyy为yyyy-mm-dd](https://blog.csdn.net/weixin_43441129/article/details/127828236)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
人大金仓数据库中将时间戳值44504.7643503935转为指定格式yyyy-MM-dd hh24:mm:ss
时间戳值44504.7643503935表示的是从1900年1月1日0时0分0秒开始的时间(以天为单位),如果要将其转换为指定格式yyyy-MM-dd hh24:mm:ss,可以使用以下SQL语句:
```
SELECT TO_CHAR(TO_DATE('1900-01-01', 'YYYY-MM-DD') + 44504.7643503935, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
```
其中,TO_DATE('1900-01-01', 'YYYY-MM-DD')表示将字符串'1900-01-01'转换为日期格式,+44504.7643503935表示将该日期加上44504.7643503935天,TO_CHAR()函数用于将日期转换为指定的字符串格式'YYYY-MM-DD HH24:MI:SS'。
阅读全文