2016-11-23 52 views
0

我創建表格的欄位:轉換日期不工作

ID | FirstName | LastName | DOB 

那麼我填充這些列從2頁不同的表

INSERT INTO ClientData( 
FirstName, 
LastName, 
DOB) SELECT FirstName, 
      LastName, 
      BirthDate 
     FROM Table1 
     LEFT JOIN Table2 ON Table1.ID=Table2.ID 

表2中的數據的日期出生的格式爲:

1990-01-01 

但我想它的格式爲:

01-Jan-1990 

我使用UPDATE語句插入語句

UPDATE ClientData 
SET DOB = CONVERT(VARCHAR(11), DOB, 106) 

之前但是它並不以這種格式在決賽桌出來。任何幫助,將不勝感激。

+1

列數據類型? – jarlh

+0

表2中的「BirthDate」字段的類型是什麼? –

+0

'exec sp_columns ClientData'是'DOB'一個字符串嗎? –

回答

0

嘗試格式而非CONVERT

FORMAT (value, format [, culture ]) 

FORMAT (BirthDate, 'your pattern', 'en-US') 
0

如@Shnugo在評論中提及。您的查詢很好,只需更改您的架構,並且不要將日期存儲爲字符串。總是使用DateTime數據類型爲兩個表table1table2和簡單地轉換DATATIME在客戶機端,UI應用程序等

0

首先CAST,爲日期時間列然後將其轉換爲varchar的:

 UPDATE ClientData 
     SET DOB = CONVERT(VARCHAR(11), cast(DOB as datetime), 106)