26 回答

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個贊
第一,SQLSERVER原生是英文的,只是便于多國使用,支持多國語言和多種字符集,但本身還是以英文格式為主;
第二,如果需要轉(zhuǎn)換,可以新增一列,通過自定義函數(shù)+trigger的方式自動完成轉(zhuǎn)換和填充的操作;
第三,這種坑爹的需求就不應(yīng)該在數(shù)據(jù)端完成,從存儲空間和效率來說,有非英文字符摻雜的字符串本身存儲空間就高于英文字符(varchar和nvarchar的區(qū)別),另外datetime只占8個字節(jié),而你即便用英文+數(shù)字的varchar,也至少要20個以上的字節(jié);

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個贊
@Albert Fei: 但是現(xiàn)在得用于前端顯示,所以DateName(day,'2014-07-09'),怎么能獲取到 '09' ???

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個贊
樓上說的很對,創(chuàng)建新列,然后將內(nèi)容復(fù)制進(jìn)去,再刪除相應(yīng)字段以及更名相應(yīng)字段。

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超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貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個贊
問題我已經(jīng)解決了,是利用Substring和Convert得到的'09',非常謝謝大家的耐心回答。

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個贊
@火懸崖: 我現(xiàn)在應(yīng)該到了拼接年月日的階段了,比如:2014-07-09,我拼接之后得到的是"2014年07月9日",上級要求格式統(tǒng)一成"2014年07月09日",但是?DateName(day,'2014-07-09') ?得到的卻是 9 ,所以我想請問您 怎么得到 ’'09' ???

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個贊
@曉菜鳥: 沒太懂你的意思,你能得到9這個數(shù)字么?如果能得到的話可以參考這段代碼?
select (case when Id>9 then '大于10' else '小于10' end) from T_Test
如果你能把其他代碼也發(fā)一些的話,沒準(zhǔn)有更多的人能幫到你。

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個贊
@火懸崖: 是的,用C#的話我就得寫一個小Demo了,重點(diǎn)是我要保持原數(shù)據(jù)不變,DateName(day,'2014-07-09'),怎么能獲取到 '09' ???
- 26 回答
- 0 關(guān)注
- 1090 瀏覽
添加回答
舉報