猿问

sql server 中,更改字段类型时如何保持原数据的格式???

大致需求是这样的,我表中有一个字段是 "datetime" 类型的,数据类似于 2014-07-05 10:23:09.500 这样的,由于需求原因需要改成 "nvarchar(50)" ,可是表中已经有很多的数据了,我直接更改字段类型就变成了 "07 05 2014 10:23AM" ,我想要在修改字段类型时或者修改字段类型之后 原数据 变成 "2014年07月05日" 这种格式的,请问我应该怎么做?

convert 能转换成 "2014年07月05日 14:01:32" 这种格式吗?

很急,在线等。大家帮忙解决一下,万分感谢!

开心每一天1111
浏览 937回答 26
26回答

泛舟湖上清波郎朗

问题我已经解决了,是利用Substring和Convert得到的'09',非常谢谢大家的耐心回答。

料青山看我应如是

如果不需要在线修改的话,也就是说可以脱机大概半个小时之类的话,就好办了。 可以通过新增一列NewColumn nvarchar(50),然后写一小段代码,将日期中的数值定到NewColumn中。 我傻了,其实如果有新字段的话,直接使用SQL查询 Update Table1 set NewColumn=convert(OldColumn,......)  请自行查convert语法.... 然后再把OldColumn删除,将NewColumn字段改名...

隔江千里

这种方式我也想过,我当时没有找到转换为"年月日"的方法,我再找找吧,谢谢您提供的思路,非常感谢。

萧十郎

convert 能转换成 "2014年07月09日 14:01:32" 这种格式吗?

尚方宝剑之说

@晓菜鸟: 貌似没有,好像只有一下这些格式:

慕妹3146593

@火悬崖: 嗯,我查了一上午都没有找到,竟然没有中国汉字的格式,而且还不允许自定义,我勒个去。

慕田峪7331174

@晓菜鸟: 试过写c#代码或者其他语言的代码了么?通过c#代码来弄应该会很好弄吧!

DIEA

@火悬崖: 是的,用C#的话我就得写一个小Demo了,重点是我要保持原数据不变,DateName(day,'2014-07-09'),怎么能获取到 '09' ???

达令说

@爱编程的大叔 DateName(day,'2014-07-09'),怎么能获取到 '09' ???

青春有我

@晓菜鸟: 没太懂你的意思,你能得到9这个数字么?如果能得到的话可以参考这段代码? select (case when Id>9 then '大于10' else '小于10' end) from T_Test 如果你能把其他代码也发一些的话,没准有更多的人能帮到你。
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答