【发布时间】:2019-03-25 21:20:50
【问题描述】:
我需要从 SELECT 语句中获取带有数据的格式化字符串。问题是我需要它用单引号返回。这是一个例子。
我有一个包含 2 列 TrainingSwipeID (int) 和 ExtendedDate (datetime) 的表。例如,我在表中有一行包含
TrainingSwipeID = 123
培训结束 = 04/23/2019 09:00:00
我需要创建一个 SELECT 语句,它将返回格式化的字符串,例如 {'TrainingSwipeID':123,'TrainingEnd':04/23/2019 09:00:00}
我研究并发现您可以使用双单引号来解决此问题。我尝试了以下操作,但没有成功,我收到以下错误“将 varchar 值 '{'TrainingSwipeID':' 转换为数据类型 int 时转换失败。”
SELECT '{''TrainingSwipeID'':' + TrainingSwipeID + '''TrainingEnd'':' + TrainingEnd + '}'
AS MyFormattedString
FROM TrainingSwipe
谁能帮忙?
【问题讨论】:
-
将 TrainingSwipeID 替换为
convert(varchar(x), TrainingSwipeID),其中 x 是一个很好的长度来覆盖您的 ID。大概您还需要以特定方式格式化日期。一些样式见here。 -
使用KISS原则。
select concat('{''TrainingSwipeID'':' , TrainingSwipeID, ',''TrainingEnd'':', TrainingEnd, '}') -
谢谢@AlexKudryashev。正如您所说,这非常有效并且很简单。 :D
标签: sql sql-server select