sql 里怎么把varchar转成datetime格式

 我来答
天天说情事
推荐于2019-08-09 · 一个离婚后相亲400多次的情感专家
天天说情事
采纳数:264 获赞数:7852

向TA提问 私信TA
展开全部

首先,要确定varchar格式内的数据是否符合datetime的数据格式。

其次,如果varchar数据只是部分为datetime数据,则要先截取其中符合条件的字符,再进行转换。

再次,通过CAST函数进行转换示例:

1.假设varchar数据为'2016-05-02 12:00:12 fdas';

2.根据数据显示,不能直接转换,需要利用字符截取函数SUBSTRING;

3.转换:

select  cast(substring('2016-05-02 12:00:12 fdas',1,19) 

as datetime) as varcharTOdatetime

     

扩展资料:

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

参考资料来源:百度百科:结构化查询语言

KDERP
推荐于2018-02-26 · 知道合伙人软件行家
KDERP
知道合伙人软件行家
采纳数:266 获赞数:699
2016-2017荣获 金达软件(广州) 最佳项目负责人

向TA提问 私信TA
展开全部

首先,要确定varchar格式内的数据是否符合datetime的数据格式。

其次,如果varchar数据只是部分为datetime数据,则要先截取其中符合条件的字符,再进行转换。

再次,通过CAST函数进行转换示例:

         1)假设varchar数据为'2016-05-02 12:00:12 fdas';

         2)根据数据显示,不能直接转换,需要利用字符截取函数SUBSTRING;

   3)转换:

              select  cast(substring('2016-05-02 12:00:12 fdas',1,19) 

                 as datetime) as varcharTOdatetime

    

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hy1397471
2016-04-06 · 知道合伙人软件行家
hy1397471
知道合伙人软件行家
采纳数:4714 获赞数:17154
15年数据库维护及数据库应用系统开发经验,从事零售业、服务业及财务管理类系统开发与维护。

向TA提问 私信TA
展开全部

使用convert函数,参数格式 CONVERT(VARCHAR(10),GETDATE(),110)

第二个参数为字段名称,最后一个参数为指定转换格式


例:  SELECT CONVERT(VARCHAR(10),GETDATE(),110)

检索结果为:11-10-2015

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
都是卖大米的
2016-04-05 · TA获得超过1.5万个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:406万
展开全部
关键是varchar类型数据的格式:

Select CONVERT(datetime, '2006-05-16 10:57:49', 120)
Select CONVERT(datetime, '20060516' ,112)

Select CONVERT(datetime, '2006-05-16',23)
追问:
varchar类型 大小50 格式为2012-06-02 01
01为时间只到小时
我想把月份和日期修改下!但是行比较多
追答:
这个可以拼一下:

Select CONVERT(datetime, '2006-05-16 10'+':00:00', 120)

然后再处理。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
美图赏
2016-04-11 · 知道合伙人数码行家
美图赏
知道合伙人数码行家
采纳数:2638 获赞数:24292
毕业于河南大学电子信息科学与技术专业,学士学位,擅长计算机网络技术。

向TA提问 私信TA
展开全部
  如果你用的是sql server 2008的话不用转换就能直接比较 sql server 2005 没试过不知道
转换的方法:
sql 中:
select convert (datetime,'07/22/1986')
select cast( '07/22/1986' as datetime)
Oracle 中
select to_date(date_time_string,'yyyy-MM-dd') from table_name
你试试吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式