首页 > 解决方案 > 结合日期和字符串

问题描述

我的表格包含不同产品的每日数量。在我的查询中,我尝试将日期 ( 12/28/18) 转换为 Excel 等效值 (43,462),然后将其与产品名称 (ABC) 结合起来。

我尝试了不同版本的连接和 CAST,但似乎遗漏了一些东西。

预期输出为43642-ABC

标签: sqlsql-serversql-server-2012

解决方案


你可以使用:

CREATE TABLE t(d DATETIME, c VARCHAR(10));
INSERT INTO t(d,c) VALUES('12/28/18', 'ABC');

SELECT *, CONCAT(DATEDIFF(day, '19000101', d)+2,'-',c) AS result
FROM t

db<>小提琴演示

输出:

+----------------------+------+-----------+
|          d           |  c   |  result   |
+----------------------+------+-----------+
| 28/12/2018 00:00:00  | ABC  | 43462-ABC |
+----------------------+------+-----------+

解释为什么将两个添加到 DATEDIFF 的结果中:Difference between datetime converts in MSExcel and SQL Server


推荐阅读