sql - 结合日期和字符串
问题描述
我的表格包含不同产品的每日数量。在我的查询中,我尝试将日期 ( 12/28/18
) 转换为 Excel 等效值 (43,462),然后将其与产品名称 (ABC) 结合起来。
我尝试了不同版本的连接和 CAST,但似乎遗漏了一些东西。
预期输出为43642-ABC
解决方案
你可以使用:
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
输出:
+----------------------+------+-----------+
| d | c | result |
+----------------------+------+-----------+
| 28/12/2018 00:00:00 | ABC | 43462-ABC |
+----------------------+------+-----------+
解释为什么将两个添加到 DATEDIFF 的结果中:Difference between datetime converts in MSExcel and SQL Server
推荐阅读
- java - 为什么Java中的JTextfield在运行时不显示文本?
- laravel - 为什么 laravel 中的电子邮件通知不起作用?
- powershell - 如何在 GitHub 工作流/操作中的 PowerShell 下运行名称中带有变量的脚本
- sql - Postgres - 从给定的时间戳获取午夜
- html - 使用 CSS 在 inline-block 元素后强制换行
- python-3.x - 如何将新文件放在硬盘驱动器上的某个位置(python)
- multithreading - 关于线程通信将任务从被调用的子线程发回主线程
- excel - 如果出现 MsgBox,则停止宏
- rust - 替换结构中的迭代器
- javascript - javascript中的函数参数