26 回答
TA贡献1891条经验 获得超3个赞
第一,SQLSERVER原生是英文的,只是便于多国使用,支持多国语言和多种字符集,但本身还是以英文格式为主;
第二,如果需要转换,可以新增一列,通过自定义函数+trigger的方式自动完成转换和填充的操作;
第三,这种坑爹的需求就不应该在数据端完成,从存储空间和效率来说,有非英文字符掺杂的字符串本身存储空间就高于英文字符(varchar和nvarchar的区别),另外datetime只占8个字节,而你即便用英文+数字的varchar,也至少要20个以上的字节;
TA贡献1853条经验 获得超18个赞
@晓菜鸟: 你看看这段代码能不能帮到你:
declare @i nvarchar(50);
declare @str int;
set @i='9';
set @str= cast(@i as int);
if @str<=9
begin
set @i='0'+@i;
end
select @i;
@i是你求出来的9字符串,@str是临时变量。
TA贡献1805条经验 获得超10个赞
@火悬崖: 我现在应该到了拼接年月日的阶段了,比如:2014-07-09,我拼接之后得到的是"2014年07月9日",上级要求格式统一成"2014年07月09日",但是 DateName(day,'2014-07-09') 得到的却是 9 ,所以我想请问您 怎么得到 ’'09' ???
TA贡献1784条经验 获得超8个赞
@晓菜鸟: 没太懂你的意思,你能得到9这个数字么?如果能得到的话可以参考这段代码?
select (case when Id>9 then '大于10' else '小于10' end) from T_Test
如果你能把其他代码也发一些的话,没准有更多的人能帮到你。
TA贡献1820条经验 获得超2个赞
@火悬崖: 是的,用C#的话我就得写一个小Demo了,重点是我要保持原数据不变,DateName(day,'2014-07-09'),怎么能获取到 '09' ???
- 26 回答
- 0 关注
- 911 浏览
添加回答
举报