转换日期不工作
问题描述:
我创建表格的栏位:转换日期不工作
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)
之前但是它并不以这种格式在决赛桌出来。任何帮助,将不胜感激。
答
尝试格式而非CONVERT
FORMAT (value, format [, culture ])
例
FORMAT (BirthDate, 'your pattern', 'en-US')
答
如@Shnugo在评论中提及。您的查询很好,只需更改您的架构,并且不要将日期存储为字符串。总是使用DateTime
数据类型为两个表table1
和table2
和简单地转换DATATIME在客户机端,UI应用程序等
答
首先CAST,为日期时间列然后将其转换为varchar的:
UPDATE ClientData
SET DOB = CONVERT(VARCHAR(11), cast(DOB as datetime), 106)
列数据类型? – jarlh
表2中的“BirthDate”字段的类型是什么? –
'exec sp_columns ClientData'是'DOB'一个字符串吗? –