,我有以下数据:置字符串+日期在SQL Server
KEY ID DATE
123456789 09BA2038 01-01-2017
而且我想串连,但保留日期的原始格式。当我尝试:
CONCAT(Key, '-', ID, '-', DATE)
它给我的
123456789-09BA2038-Jan 01 2017 11:00AM
输出,但我想输出是
123456789-09BA2038-01-01-2017
,我有以下数据:置字符串+日期在SQL Server
KEY ID DATE
123456789 09BA2038 01-01-2017
而且我想串连,但保留日期的原始格式。当我尝试:
CONCAT(Key, '-', ID, '-', DATE)
它给我的
123456789-09BA2038-Jan 01 2017 11:00AM
输出,但我想输出是
123456789-09BA2038-01-01-2017
转换之日起,我猜你想要的格式mm-dd-yyyy,如果是这样的话:
CONCAT([key],'-',[ID],'-',CONVERT(VARCHAR(10), [DATE], 110))
如果你想DD-MM-YYYY是:
CONVERT(VARCHAR(10), [DATE], 105)
工作就像一个魅力!谢谢 :)。 – PRIME
我想不会使用Concat的是在这种情况下 这样更好:
select convert(nvarchar(100),KEY)+'-'+convert(nvarchar(100),ID)+'-'+convert(nvarchar(100),DATE)
from tableName
这不会给出问题中所需的格式。 – Leonidas199x
@ Leonidas199x为什么?数据类型并不重要,当你拼接你的字符串时,它将在我的quert中成为nvarchar,而且它和他想要的格式完全一样。如果我错了,我会很高兴你说服我,谢谢! – dood
问题中有一个特定的日期格式,你的回答没有给出。运行这个,很明显:SELECT CONVERT(NVARCHAR(100),GETDATE()),CONVERT(NVARCHAR(10),GETDATE(),110) – Leonidas199x
您需要使用一个明确的转换,让你的日期格式想。
在这种情况下CONCAT(Key, '-', ID, '-', convert(varchar(10),DATE,105))
应该正常工作。
你可以在这里找到的格式的完整列表:https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql
谢谢,这个清单非常有用! – PRIME
尝试CONCAT(Key, '-', ID, '-', CONVERT(varchar(10),DATE, 110))
。 110
通知SQL Server将日期格式设置为'mm-dd-yyyy'(美式)。
有关此外观的更多信息here。
尼尔斯
将您的日期转换为正确格式的刺痛首先 – Jens