~~~~~~从varchar到datetime的数据类型的转换问题~~~~~~

bighai 2004-12-18 04:09:24
我现在在数据库里面操作,A表里面各个字段都有数据,b字段的数据类型是varchar(10),数据都这样的形式:20041218,我现在想把这个表的数据类型换成datetime(8),数据格式为2004-12-18.

任务很急,搞不定,明天就要加班了,烦请各位老大帮忙!多谢多谢!
...全文
450 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
didoleo 2004-12-18
  • 打赏
  • 举报
回复

cast(stuff(stuff(c_dateo,5,0,'-'),8,0,'-') as datetime)
dnvodcwan 2004-12-18
  • 打赏
  • 举报
回复
datatime是日期格式就是这样:2004-12-18 00:00:00
所以这条select convert(smalldatetime,'20041218',21)
happyjun2000 2004-12-18
  • 打赏
  • 举报
回复
咱不会了,对不住兄弟了:>
happyjun2000 2004-12-18
  • 打赏
  • 举报
回复
print CONVERT(char(10), CONVERT(datetime, '20010101'), 120)
print CONVERT(char(10), CONVERT(datetime, '2001-01-01'), 120)
可以的呀
除非你还有其他的格式的

语句顶多写规范一点
UPDATE [liuliang].[dbo].[b1]
但着不是问题,还是你转化时候有错
bighai 2004-12-18
  • 打赏
  • 举报
回复
我的字段是c_dateo,表是b1
按你的意思写:
UPDATE b1
SET C_DATEO = CONVERT(char(10), CONVERT(datetime, C_DATEO), 120)

不知道写错没有?但还是不行!提示数据转到datetime出错!
happyjun2000 2004-12-18
  • 打赏
  • 举报
回复
update yourtable
set yourtimecolumn=convert(char(10),convert(datetime,yourtimecolumn),120)
然后该列的类型为datetime

不知道直接该为datetime类型是不是会自动转
bighai 2004-12-18
  • 打赏
  • 举报
回复
我只是想改一下字段的数据类型,而让数据自动转为如2004-12-18的格式!
bighai 2004-12-18
  • 打赏
  • 举报
回复
可能我还是没有表达清楚@
我的数据不止200041218这一条数据啊,有很多条,20041219,20041112等等,我只是举了一个例子
happyjun2000 2004-12-18
  • 打赏
  • 举报
回复
print convert(datetime,'20040118')
print convert(datetime,'2004-01-18')
原来都是可以的
理解错了:>
happyjun2000 2004-12-18
  • 打赏
  • 举报
回复
咱也是菜鸟
if( charindex('-','2004-12-18',1)>0)
print '直接就是2004-12-18形式了'
else
select stuff(stuff('20041218',5,0,'-'),8,0,'-')
631799 2004-12-18
  • 打赏
  • 举报
回复
select convert(char(10),convert(datetime,'20040118'),120)
bighai 2004-12-18
  • 打赏
  • 举报
回复
是呀!我现在字段里面是varchar(10),数据全部是如20041218的格式!
那请问happyjun2000(蓝色游侠∮学习@交流)具体怎么写?我是菜鸟哦!
happyjun2000 2004-12-18
  • 打赏
  • 举报
回复
是不是只有
2004-12-18
和20041218两种方式
那判断一下在转化
bighai 2004-12-18
  • 打赏
  • 举报
回复
不好意思,我只是举了一个例子,我想把数据类型varchar(10 )换成datetime(8)格式!
相应,这个字段里面的数据会改变!比如说:20041218会变成2004-12-18
lsxaa 2004-12-18
  • 打赏
  • 举报
回复
转换 select stuff(stuff('20041218',5,0,'-'),8,0,'-')
lsxaa 2004-12-18
  • 打赏
  • 举报
回复
转换 select stuff(stuff('20041218',4,0,'-'),7,0,'-')

happyjun2000 2004-12-18
  • 打赏
  • 举报
回复
什么意思??
cast('2004-12-18' as datetime)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧