请问下,sqlserver2012如何将datetime转为int

我有一个sqlserver2012数据库,其某个字段是date的,我想将其变为int,但是直接改表定义不行啊,所有的数据都是date形式的呢!如何更改保证每一行数据的该字... 我有一个sqlserver2012数据库,其某个字段是date的,我想将其变为int,但是直接改表定义不行啊,所有的数据都是date形式的呢!如何更改保证每一行数据的该字段都从date转为int呢? 展开
 我来答
17号观察室
推荐于2018-03-02 · TA获得超过5730个赞
知道大有可为答主
回答量:3666
采纳率:66%
帮助的人:1324万
展开全部
楼主 需要提醒你的是数据类型不是你想怎么转就怎么转的 特别是字符串或日期转整型
字符串和日期 必须符合整型的要求 整型是数字 字符串如果是数字的形式才可以转换 如果是汉字字母的话 你觉得能转换为数字吗? 肯定不行 日期也类似 如果日期类型是20130805这样的格式 你转换就没有问题 否则肯定报错
然后给你转换的 语法吧
--方法一:
select cast(字段名 as int)
--方法二:
select convert(int,字段名)

--有什么疑问可以随时问我 希望能够帮到你
更多追问追答
追问

你好,我试了你这个提示好久,现在还是有问题!

我的表如下:

现在我希望date11该字段的所有数据全部变为int类型,比如第一行变为20050101.


你这里提供的代码只是将查询出来的数据变为了int,如何将表中的数据也变回去呢!

追答
--这样就可以了 
select cast(replace(convert(char(10),date11,120),'-','') as int)
szm341
2013-08-05 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5106万
展开全部
先将date列转换为varchar(10),然后用replace(col,'-','')整列更新,去掉-符号
然后再将其转换为int
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-04
展开全部
对SQL不熟悉。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式