請(qǐng)使用sql server中的convert函數(shù),后面加上相應(yīng)的style就可以了,里面有很多樣式可以供參考sqlserver-datetime轉(zhuǎn)換格式簡(jiǎn)介

成都創(chuàng)新互聯(lián)公司主營(yíng)長(zhǎng)順網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開(kāi)發(fā),長(zhǎng)順h5微信小程序開(kāi)發(fā)搭建,長(zhǎng)順網(wǎng)站營(yíng)銷(xiāo)推廣歡迎長(zhǎng)順等地區(qū)企業(yè)咨詢(xún)
請(qǐng)參閱!
在SQL SERVER 2005中,將表中字符串轉(zhuǎn)換為數(shù)字的函數(shù)共2個(gè):
1. convert(int,字段名) 例如:select convert(int,'3')
2. cast(字段名 as int) 例如:select cast('3' as int)
其實(shí),一般情況下沒(méi)有必要把字符串轉(zhuǎn)換為數(shù)字類(lèi)型
假如需要比較兩個(gè)字段是否相等,但是一個(gè)字段為字符串類(lèi)型,一個(gè)為數(shù)字類(lèi)型,用“=”比較兩個(gè)值是否相等時(shí),SQL SERVER會(huì)自動(dòng)把字符串轉(zhuǎn)換為數(shù)字再比較的!
例如:
select da.TITLE_NAME,dsc.NAME
from dbo.DV_DUTY dd
inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA)
left join DV_ASSET da on(da.ID=dd.RECORD_ID and dd.TYPE='2')
where dd.AREA is not null
這個(gè)SQl中,inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA) 中dsc.ID為數(shù)字類(lèi)型,dd.AREA為字符類(lèi)型,相當(dāng)于這樣on(1='1')的判斷,這時(shí)候就會(huì)自動(dòng)吧字符串的'1'轉(zhuǎn)換為數(shù)字類(lèi)型再比較的。
但是也有弊端,一旦字符類(lèi)型轉(zhuǎn)換為數(shù)字類(lèi)型出錯(cuò)(說(shuō)明字符串的確就非數(shù)字組成的),SQL就會(huì)拋出異常。
SQL SERVER 2005中有判斷字段是否為數(shù)字的函數(shù):
ISNUMERIC(字段名) -----假如字段是數(shù)字類(lèi)型返回1,不是就返回0
但是好像有的時(shí)候不好使,比如:select isnumeric('3,34') 就返回1
說(shuō)明這個(gè)函數(shù)對(duì)字段值中全是數(shù)字但是數(shù)字間用“,”和“.”(逗號(hào)或點(diǎn))隔開(kāi)的都視為數(shù)字了!
以上回答正確,只是數(shù)據(jù)類(lèi)型未進(jìn)行轉(zhuǎn)換,也可以使用cast來(lái)轉(zhuǎn)
select
cast(year(workon)
as
varchar(4))
+'年'+cast(month(workon)
as
varchar(2))+'月'+cast(day(workon)
as
varchar(2))+'日'
from
table_name
DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)的意思是返回當(dāng)前日期
dd為日期分量代表day,還有其它的如month,year等
dateadd 為計(jì)算某個(gè)日期之前或之後多少個(gè)日期分量的時(shí)間,如計(jì)算今天之前10天的時(shí)間為
dateadd(dd,'2012-10-26',-10),之後10天日期為dateadd(dd,'2012-10-26',10)
datediff 計(jì)算兩個(gè)日期之前日期分量的個(gè)數(shù),如計(jì)算兩個(gè)日期之間的天數(shù):datediff(dd,'2012-9-10','2012-9-11')
此處的0代表'1900-1-1'
整個(gè)表達(dá)式相當(dāng)於DATEADD(dd, DATEDIFF(dd,'1900-1-1',getdate()), '1900-1-1')
即先計(jì)算當(dāng)臆系統(tǒng)時(shí)間與1900-1-1之間的天數(shù),再計(jì)算1900-1-1加上這個(gè)天數(shù)的日期。
有的,用convert,要什麼樣的格式可以參照如下:
給你個(gè)例子,要轉(zhuǎn)成2012/12/12
select convert(nvarchar(10),日期,111)
- 0 或 100 (1,2) 預(yù)設(shè)值 mon dd yyyy hh:miAM (或 PM)
1 101 U.S. mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英國(guó)/法國(guó) dd/mm/yyyy
4 104 德國(guó) dd.mm.yy
5 105 義大利 dd-mm-yy
6 106 (1) - dd mon yy
7 107 (1) - Mon dd, yy
8 108 - hh:mi:ss
- 9 或 109 (1,2) 預(yù)設(shè)值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM (或 PM)
10 110 USA mm-dd-yy
11 111 JAPAN yy/mm/dd
12 112 ISO yymmddyyyymmdd
- 13 或 113 (1,2) 歐洲預(yù)設(shè)值 + 毫秒 dd mon yyyy hh:mi:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (2) ODBC 標(biāo)準(zhǔn) yyyy-mm-dd hh:mi:ss(24h)
- 21 或 121 (2) ODBC 標(biāo)準(zhǔn) (含毫秒) yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126 (4) ISO8601 yyyy-mm-ddThh:mi:ss.mmm (無(wú)空格)
- 127(6, 7) 具有時(shí)區(qū) Z 的 ISO8601。 yyyy-mm-ddThh:mi:ss.mmmZ(無(wú)空格)
- 130 (1,2) 回歷 (5) dd mon yyyy hh:mi:ss:mmmAM
- 131 (2) 回歷 (5) dd/mm/yy hh:mi:ss:mmmAM
當(dāng)前名稱(chēng):sqlserverdd的簡(jiǎn)單介紹
網(wǎng)站URL:http://chinadenli.net/article16/dsgdpgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、搜索引擎優(yōu)化、微信公眾號(hào)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)