,我有以下數據:置字符串+日期在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