2017-07-12 42 views
1

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

將您的日期轉換爲正確格式的刺痛首先 – Jens

回答

0

轉換之日起,我猜你想要的格式mm-dd-yyyy,如果是這樣的話:

CONCAT([key],'-',[ID],'-',CONVERT(VARCHAR(10), [DATE], 110)) 

如果你想DD-MM-YYYY是:

CONVERT(VARCHAR(10), [DATE], 105) 
+0

工作就像一個魅力!謝謝 :)。 – PRIME

-1

我想不會使用Concat的是在這種情況下 這樣更好:

select convert(nvarchar(100),KEY)+'-'+convert(nvarchar(100),ID)+'-'+convert(nvarchar(100),DATE) 
from tableName 
+0

這不會給出問題中所需的格式。 – Leonidas199x

+0

@ Leonidas199x爲什麼?數據類型並不重要,當你拼接你的字符串時,它將在我的quert中成爲nvarchar,而且它和他想要的格式完全一樣。如果我錯了,我會很高興你說服我,謝謝! – dood

+0

問題中有一個特定的日期格式,你的回答沒有給出。運行這個,很明顯:SELECT CONVERT(NVARCHAR(100),GETDATE()),CONVERT(NVARCHAR(10),GETDATE(),110) – Leonidas199x

0

嘗試CONCAT(Key, '-', ID, '-', CONVERT(varchar(10),DATE, 110))110通知SQL Server將日期格式設置爲'mm-dd-yyyy'(美式)。

有關此外觀的更多信息here

尼爾斯

2

如果你使用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 

或者你可以而不是使用110型適用於美國的日期格式使用CONVERT

相關問題