我有一个包含两个日期列的表。但是这些列在varchar中。我需要将它们转换为日期格式。将varchar转换为sql服务器中的日期格式
的样本数据是这样的:
户口号码|注册日期|系统状态更改日期
01740567715 | 10-JUL-13 | 30-JUL-13 12.53.32.000000000 PM
我希望这两列都是这样的:2013年7月10日。
登记日期,我使用此代码:
Update [dbo].[SysDataV2]
Set ["REGISTRATION_DATE"]= convert(datetime, (["REGISTRATION_DATE"]), 106)
但它shwoing结果为varchar,也显示错误的格式。
对于我使用下面的代码系统状态更改日期:
update [dbo].[SysData]
Set ["KYC_STATUS_CHANGED_DATE"]= REPLACE(CONVERT(datetime,convert(datetime,left(["KYC_STATUS_CHANGED_DATE"],9),103),106),' ' ,'-')
两者都转变为某种类型的日期格式(不是我预期的格式),但表结构,他们仍显示为VARCHAR。
我在这里做错了什么?
表数据类型仍然是varchar。更新会更改存储的字符串,但它不会奇迹般地更改数据类型。 –
@AaronBertrand:那么我必须运行一个选择查询并在那里转换日期? –
不,您需要在数据正确时更改列的数据类型。 –