2016-11-23 51 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)