在 SQL 服务器中连接字符串 + 日期
Concatenate String + date in 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)
我认为在这种情况下不使用 concat 更好
像这样:
select convert(nvarchar(100),KEY)+'-'+convert(nvarchar(100),ID)+'-'+convert(nvarchar(100),DATE)
from tableName
您需要使用显式转换来获得您想要的日期格式。
在这种情况下 CONCAT(Key, '-', ID, '-', convert(varchar(10),DATE,105))
应该可以正常工作。
您可以在此处找到完整的格式列表:https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql
尝试CONCAT(Key, '-', ID, '-', CONVERT(varchar(10),DATE, 110))
。 110
告诉 SQL 服务器将日期格式化为 'mm-dd-yyyy'(美国风格)。
有关此外观的更多信息here。
尼尔斯
如果您使用的是 SQL Server 2012 或更新版本,则可以使用 FORMAT 将日期或日期时间更改为您喜欢的格式的 varchar。
select CONCAT([Key],'-',ID,'-',FORMAT([DATE],'MM-dd-yyyy')) as Key2
from (values (123456789,'09BA2038',convert(date,'2017-01-15',126))) v([Key],ID,[DATE]);
结果:
Key2
123456789-09BA2038-01-15-2017
或者您可以使用 CONVERT 而不是使用美国日期格式的 110 样式。
我有以下数据:
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)
我认为在这种情况下不使用 concat 更好 像这样:
select convert(nvarchar(100),KEY)+'-'+convert(nvarchar(100),ID)+'-'+convert(nvarchar(100),DATE)
from tableName
您需要使用显式转换来获得您想要的日期格式。
在这种情况下 CONCAT(Key, '-', ID, '-', convert(varchar(10),DATE,105))
应该可以正常工作。
您可以在此处找到完整的格式列表:https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql
尝试CONCAT(Key, '-', ID, '-', CONVERT(varchar(10),DATE, 110))
。 110
告诉 SQL 服务器将日期格式化为 'mm-dd-yyyy'(美国风格)。
有关此外观的更多信息here。
尼尔斯
如果您使用的是 SQL Server 2012 或更新版本,则可以使用 FORMAT 将日期或日期时间更改为您喜欢的格式的 varchar。
select CONCAT([Key],'-',ID,'-',FORMAT([DATE],'MM-dd-yyyy')) as Key2
from (values (123456789,'09BA2038',convert(date,'2017-01-15',126))) v([Key],ID,[DATE]);
结果:
Key2
123456789-09BA2038-01-15-2017
或者您可以使用 CONVERT 而不是使用美国日期格式的 110 样式。