首页 > 代码库 > 数据库字符串、日期及数据类型转换(cast /convert)
数据库字符串、日期及数据类型转换(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—修改。把分数~100之间的人,年龄改为。
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
--查字符串,返回符合条件的首字母索引,索引从开始,返回代表没找到
--(在C#中indexof索引从开始,返回-1代表没找到)
select CHARINDEX (‘efg‘,‘abcdefghijklmnopqrstuvwsyz‘)--此时显示.
select CHARINDEX (‘199‘,cid) from yuangong --应用于表格的用法
--字符串拼接
select ‘1‘+‘abc‘+‘2‘+‘def‘as 凭借 --执行,就会显示(凭借:abc2def)
--返回相似度
select DIFFERENCE (‘abcdefgh‘,‘abcdefgh‘) --返回数字~4,4代表完全相似!
--从左向右截取字符
select left (‘abcdefg‘,3)--表示从左向右截取位,显示abc
select RIGHT (‘abcdefg‘,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并粘贴次
--顺序翻转
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) --从指定第个索引处开始,截取指定个长度字符串.此时显示de
--常用:大小写,翻转, charindex, substring, len
#################################################################
--日期时间数据类型及函数
--显示当天星期几
select @@DATEFIRST --显示当天的星期,返回int
-给一个时间加上一段时间
select DATEADD (year,2,‘2006-01-01‘) --显示-01-01
--求时间差(年,月,天,时,分……都行)
select DATEDIFF (YEAR ,‘2011-07-01‘,‘2014-07-01‘)--显示年.
select DATEDIFF (DAY,‘2011-07-01‘,‘2014-02-03‘)--显示天.
--提取年,月,日,时,分,秒,星期等
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 ,
类型转换:CAST、CONVERT
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.这里表示显示数字总个数,2表示小数点后个数
select CAST (12.3 as decimal(18,2))--得出.30.
select CONVERT (int,123.45)
--用法与CAST相反!
select name,(SUBSTRING(cid,7,4)+‘年‘+SUBSTRING(cid,11,2)
+‘年‘+SUBSTRING(cid,13,2)+‘月‘) as 生日 from yuangong
########################################
create table shengrii
(
name varchar(29),
生日 varchar(29),
)
go
insert into shengrii values (‘张三‘,‘2014年月日‘)
select *from shengrii
数据库字符串、日期及数据类型转换(cast /convert)