數據庫字符串、日期及數據類型轉換(cast /convert)


數據庫(字符串函數,日期函數,數據類型轉換CAST,convert)

 

use student

go

 

create table yuangong

(

code int,

name varchar(20),

sex varchar(20),

age int,

bumen varchar(20),

 

)

 

insert into  yuangong  values(1,'周數','男',27,'銷售部')

insert into  yuangong  values(1,'周的王','男',27,'銷售部')

insert into  yuangong  values(1,'地方','男',27,'銷售部')

insert into  yuangong  values(1,'周文王','男',27,'銷售部')

insert into  yuangong  values(1,'看王','男',27,'銷售部')

insert into  yuangong  values(1,'周王','男',36,'銷售部')

 

go

 

Sp_renamedb    xxx , fff       --為數據庫改名!xxx改成fff

Alter table xinxi add  [int]  varchar(20)--  在xinxi 的表里添加int列,值類型是varchar(20).新添加的列不能設置  不為空!

Alter table xinxi drop  column  [int]   --刪除[int]列

Update xinxi  set  nianling=26 where  fenshu between 80 and 100—修改。把分數80~100之間的人,年齡改為26。

Select  distinct   name  from   xinxi –自動去除重復名字的信息!

################################################

alter table yuangong add cid varchar(20)

 

update yuangong set cid=370322198908120800

################################################

--字符串函數

--返回字符串的首字符ASCII編碼

select ASCII ('ame')  -—返回int值

select ASCII(name)from yuangong   --注意應用格式

select *from yuangong where ASCII (name)>200

--將字符轉化成對應ASCII代碼

select CHAR (100)

select CHAR (age)from yuangong

--查字符串,返回符合條件的首字母索引,索引從1開始,返回0代表沒找到

--(在C#中indexof索引從開始,返回-1代表沒找到)

select CHARINDEX ('efg','abcdefghijklmnopqrstuvwsyz')--此時顯示5.表示‘efg’的從左向右第一個索引是5!

select CHARINDEX ('199',cid) from yuangong --應用於表格的用法

 

--字符串拼接

select '1'+'abc'+'2'+'def'as 憑借   --執行,就會顯示(憑借:1abc2def)

--返回相似度

select DIFFERENCE ('abcdefgh','abcdefgh')   --返回數字0~4,4代表完全相似!

--從左向右截取字符

select left ('abcdefg',3)--表示從左向右截取3位,顯示abc

select RIGHT ('abcdefg',3)--表示從右向左截取3位,顯示efg

--返回字符串長度

select LEN(' a v    ') --返回. 后面的空格不算,前面和中間的都算!

--全部小/大寫

select LOWER('ASDFGcvx')--顯示asdfgcvx

select UPPER ('abcdddc')--顯示ABCDDDC

--從左邊去空格

select LTRIM ('    34332aaa              ')

--顯示時,去除左面空格!顯示:34332aaa

select RTRIM ('                 3234     ')

 --顯示時,去右邊空格!顯示:               3234

 

--替換

select REPLACE ('1234567890','456','abcd')

--顯示123abcd7890.(要替換的字符串,要替換的內容,修改后的內容)

select REPLACE (cid,'606','103')from yuangong  --應用於表格中的格式

-復制並粘貼

select REPLICATE ('abc',3)--復制abc並粘貼3次

--順序翻轉

select REVERSE ('abcde')--顯示edcba

select REVERSE (name)from yuangong --在表格中應用格式

--空格

select 'a'+SPACE (99)+'b'  --拼接ab為了方便觀察!個空格

-截取數字

select STR(123456.789012345,10,9)--10是包含.在內的總數字個數';9是小數點后保留的個數.以前面數字為主.

--替換字符串

select STUFF ('abcdefgh',4,2,'  hello  ')--4代表從左向右的第四個索引開始(從開始),2代表替換的字符個數。此時顯示abc hello fgh

-截取字符串

select SUBSTRING('abcdefg',4,2)  --從指定第4個索引處開始,截取指定2個長度字符串.此時顯示de

 

--常用:大小寫,翻轉, charindex, substring, len

#################################################################

 

 

--日期時間數據類型及函數

-給一個時間加上一段時間

select  DATEADD (year,2,'2006-01-01')  --顯示2008-01-01

--求時間差(年,月,天,時,分……都行)

select DATEDIFF (YEAR ,'2011-07-01','2014-07-01')--顯示3年.

select DATEDIFF (DAY,'2011-07-01','2014-02-03')--顯示948天.

--提取年,月,日,時,分,秒,星期等

select DATENAME (weekday ,'2014-11-02')--顯示'天'是.'月'是.'年'是.返回值是nvarchaer

select DATEPART(WEEKDAY  ,'2014-11-02')--作用同上,返回值int

select YEAR ('2014-11-02')--提取年:2014, month 月,day 天.注意格式.作用等同DATEPART

select GETDATE()as 當前時間       --獲取數據庫當前時間!

 

select ISDATE('2013-06-31')--判斷日期格式是否正確,對:1,錯:0.

 

 --常用ISDATE ,GETDATE ,DATEPART ,

 

 類型轉換CASTCONVERT

select CAST (123 as varchar(20))  --得出varchar型123 。

select CAST (1.23 as int )        --得到int型1.

select CAST (123 as decimal(10,2))--得出decimal型123.00.這里10表示顯示數字總個數,2表示小數點后個數

select CAST (12.3 as decimal(18,2))--得出12.30.

 

select CONVERT (int,123.45)

--用法與CAST相反!

 

select name,(SUBSTRING(cid,7,4)+'年'+SUBSTRING(cid,11,2)

+'年'+SUBSTRING(cid,13,2)+'月') as 生日 from yuangong

 字符串型數值和日期型數值須要   ‘ ’   ,int型數值型不用!

 ########################################

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM