首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在sql server中将varchar转换为日期格式

在sql server中将varchar转换为日期格式
EN

Stack Overflow用户
提问于 2013-10-05 15:39:00
回答 2查看 28.2K关注 0票数 1

我有一张有两个日期栏的桌子。然而,列在varchar中。我需要把它们伪装成日期格式。

样本数据如下所示:

帐号?注册日期?系统状态更改日期 01740567715 -7月10日至13日30-7月13日12.53.32.0000000

我希望这两篇专栏都是这样的:10-7月-2013年。

关于注册日期,我使用以下代码:

代码语言:javascript
运行
复制
Update [dbo].[SysDataV2] 
Set ["REGISTRATION_DATE"]= convert(datetime, (["REGISTRATION_DATE"]), 106)

但它使结果黯然失色,同时也显示出错误的格式。

对于系统状态更改日期,我使用以下代码:

代码语言:javascript
运行
复制
update [dbo].[SysData] 
Set ["KYC_STATUS_CHANGED_DATE"]= REPLACE(CONVERT(datetime,convert(datetime,left(["KYC_STATUS_CHANGED_DATE"],9),103),106),' ' ,'-')

两者都更改为某种类型的日期格式(不是我预期的格式),但在表结构中,它们仍然显示为varchar。

我在这里做错什么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-05 15:55:30

您需要从varchar中更改列的数据类型,以将其存储为Date。然后,当您选择它,您可以格式化它的任何方式,你喜欢。一种方法是创建一个正确数据类型的新列并转换数据,然后删除旧列。确保旧列没有和外键之间的关系,否则也需要将这些关系转移过来。

代码语言:javascript
运行
复制
ALTER TABLE [dbo].[SysData] ADD ConvertedDate DateTime
UPDATE [dbo].[SysData] SET ConvertedDate = CAST(VarCharDate as DateTime)
ALTER TABLE [dbo].[SysData] DROP COLUMN VarCharDate
票数 3
EN

Stack Overflow用户

发布于 2013-10-05 15:52:36

表的数据类型仍然是varchar。一个更新只是改变字符串,它不改变数据类型。您应该做的是(假设所有的日期都是有效的,并且这种格式100%一致):

代码语言:javascript
运行
复制
UPDATE dbo.SysData SET REGISTRATION_DATE = 
 CONVERT(CHAR(10), CONVERT(DATE, REGISTRATION_DATE, 106), 120);

UPDATE dbo.SysData SET KYC_STATUS_CHANGED_DATE = 
   CONVERT(CHAR(10), CONVERT(DATETIME, LEFT(KYC_STATUS_CHANGED_DATE, 9), 106), 120) 
    + REPLACE(SUBSTRING(KYC_STATUS_CHANGED_DATE, 10, 9), '.',':') 
    + RIGHT(KYC_STATUS_CHANGED_DATE, 2);

ALTER TABLE dbo.SysData ALTER COLUMN REGISTRATION_DATE DATE;
ALTER TABLE dbo.SysData ALTER COLUMN KYC_STATUS_CHANGED_DATE DATETIME;

然后停止插入区域性和潜在问题的字符串。表示日期/日期时间的字符串文本应该是:

代码语言:javascript
运行
复制
-- date only
YYYYMMDD

-- with time:
YYYY-MM-DDThh:mm:ss.nnn

但是,最好是确保它们是日期或日期时间值,然后再将它们传递给Server。您的应用程序应该能够做到这一点,而不需要转换成任意的字符串格式。永远不要在Server中将日期或日期时间值存储为字符串。你一事无成,损失甚多。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19199498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档