转换日期无效

时间:2016-11-23 09:57:52

标签: sql sql-server

我正在创建一个包含列的表:

 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)

但是在决赛桌中没有以这种格式出现。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

尝试FORMAT而不是CONVERT

FORMAT (value, format [, culture ] ) 

实施例

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

答案 1 :(得分:0)

正如@Shnugo在评论中提到的那样。您的查询很好,只需更改您的架构,不要将日期存储为字符串。始终对表DateTimetable1使用table2 DataType,只需在客户端,UI应用程序等中转换DataTime。

答案 2 :(得分:0)

首先CAST该列到datetime然后将其转换为varchar:

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