SQL常用语句及函数方法

更新时间:2024-01-13 16:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、通常用到的字符串转日期格式

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM

Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06

Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16

Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06

Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06

Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06

Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06

Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06

Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46

Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM

Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06

Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16

Select CONVERT(varchar(100), GETDATE(), 12): 060516

Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937

Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967

Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47

Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157

Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM

Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16

Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47

Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250

Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM

Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006

Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16

Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006

Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006

Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006

Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006

Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006

Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49

Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM

Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006

Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16

Select CONVERT(varchar(100), GETDATE(), 112): 20060516

Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513

Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547

Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49

Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700

Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827

Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM

Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

2、Sql与oracle集区别

Sqlserver中except差集,intersect 交集,union并集,

select * from a except( select a.mail,a.name,a.pass,a.time from a inner join c on a.mail=c.mail and a.name=c.name and a.pass=c.pass)

Oracle中minus差集,intersect交集,union并集

select * from a minus( select a.mail,a.name,a.pass,a.time from a inner join c on a.mail=c.mail and a.name=c.name and a.pass=c.pass)

merge用法: Merge into table1 Using table2 on

(table1.id=table2.id and table1.name=table2.name) When matched then

Update set table1.name=table2.name,table1.mail=table2.mail When not matched then

Insert (id,name,mail) values(table2.id,table2.name,table2.mail)

3、数学函数

序号 函数功能 1 2 3 4 5 6 7 8 9 10 11 12 绝对值 取整(大) 取整(小) 取整(截取) 四舍五入 为底的幂 取e为底的对数 取10为底对数 取平方 取平方根 求任意数为底的幂 取随机数 SQL Server用法 select abs(-1) value select ceiling(-1.001) value select floor(-1.001) value select cast(-1.002 as int) value select round(1.23456,4) value select Exp(1) value select log(2.7182818284590451) select log10(10) select SQUARE(4) select SQRT(4) select power(3,4) select rand() Oracle用法 select abs(-1) value from dual select ceil(-1.001) value from dual select floor(-1.001) value from dual select trunc(-1.002) value from dual select round(1.23456,4) value from dual select Exp(1) value from dual select ln(2.7182818284590451) select log(10,10) select power(4,2) select SQRT(4) select power(3,4) select sys.dbms_random.value(0,1) 13 14 15 取符号 圆周率 sin,cos,tan select sign(-8) SELECT PI() select sin(PI()/2) select max(value) value from (select 1 value union 16 求集合最大值 select -2 value union select 4 value union select 3 value)a select min(value) value from (select 1 value union 17 求集合最小值 select -2 value union select 4 value union select 3 value)a 18 处理null值(F2中select F1,IsNull(F2,10) value select F1,nvl(F2,10) value from Tbl select least(1,-2,4,3) value from dual select greatest(1,-2,4,3) value from dual select sign(-8) select sin(PI()/2) 的null以10代替) from Tbl 4、数值间比较

序号 函数功能 1 2 3 4 求字符序号 从序号求字符 连接 子串位置 模糊子串的位(返5 回2,参数去掉中间%则返回7) SQL Server用法 select ascii('a') select char(97) value select '11'+'22'+'33' value select charindex('s','sdsq',2) value select patindex('%d%q%','sdsfasdqe') value Oracle用法 select ascii('a') value from dual select chr(97) value from dual select CONCAT('11','22')||33 value from dual select instr('sdsq','s',2) value from dual select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6 6 7 求子串 子串代替(返回aijklmnef) 子串全部替换 长度 大小写转换 单词首字母大写 左补空格 右补空格 删除空格 重复字符串 发音相似性比较select substring('abcd',2,2) value SELECT STUFF('abcdef', 2, 3, 'ijklmn') value 没发现 Len或datalength lower,upper 没发现 select substr('abcd',2,2) value from dual SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual select Translate('fasdbfasegas','fa','我' ) value from dual 8 9 10 11 12 13 14 15 length lower,upper select INITCAP('abcd dsaf df') value from dual select LPAD('abcd',14) value from dual select RPAD('abcd',14) value from dual ltrim,rtrim,trim lpad('d',6,'0'),rpad(‘d’,6,’0’) SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual select space(10)+'abcd' value select 'abcd'+space(10) value ltrim,rtrim select REPLICATE('abcd',2) value SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') 16 (这两个单词返回值一样,发音相同) 5、日期函数

序号 1 函数功能 系统时间 前后几日 SQL Server用法 select getdate() value 直接与整数相加减 Os直s 求日期 select convert(char(10),getdate(),20) value dtov 求时间 select convert(char(8),getdate(),108) value stov

取日期时间的其他部分 参数---------------------------------需要补充 year yy, yyyy quarter qq, q (季度) month mm, m (m O无效) dayofyear dy, y (O表星期) day dd, d (d O无效) DATEPART 和 DATENAME 函数 (第一个参数决定) to week wk, ww (wk O无效) weekday dw (O不清楚) Hour hh,hh12,hh24 (hh12,hh24 S无效) minute mi, n (n O无效) second ss, s (s O无效) millisecond ms (O无效) 当月最后一天 本星期的某一天(比如星期日) 没发现 没发现 sfrsF 字符串转时间 可以直接转或者select cast('2004-09-08'as datetime) value select s2h直 求两日期某一部分的差(比如秒) datediff(ss,getdate(),getdate()+12.3) value d vS

根据差值求新的日期(比如分钟) select dateadd(mi,8,getdate()) value F6、日期转换

Sql server 日期函数 Getdate() 日期转字符串(yyyymmddhhmiss) select 24),':','') CONVERT(varchar(100), 112)+replace(CONVERT(varchar(100), GETDATE(), GETDATE(), Oracle sysdate select to_char(SYSDATE,'YYYYMMDDHH24MISS') from dual Gbase

Now() select to_char(now(),'YYYYMMDDHH24MISS') 7、SQL-BULK Insert

①将文本导入SQL

BULK INSERT USERINFO--表名

FROM 'E:\\Z_资料\\SSIS_TxtToDB\\USERINFO.TXT'--文件路径 WITH (

FIELDTERMINATOR = '|', --列分隔符 ROWTERMINATOR = ',' --行分隔符 )

内容:1|张三|我是张三|男,2|李四|我是李四|女

②按照模板导入SQL

根据表建模板:

bcp [数据库名].dbo.[表名] format nul -c -t, -f [输出文件路径]\\[文件名] -S [服务器名] -U [帐号] -P [密码]

BULK INSERT USERINFO

FROM 'E:\\Z_资料\\SSIS_TxtToDB\\USERINFO.TXT' WITH (

FORMATFILE='D:\\a.fmt' )

Format 内容: 9.0 4

1 SQLCHAR 0 1 \ 1 uid Chinese_PRC_CI_AS

2 SQLCHAR 0 2 \ 2 uname Chinese_PRC_CI_AS

3 SQLCHAR 0 4 \ 3 udesc Chinese_PRC_CI_AS

4 SQLCHAR 0 1 \ 4 sid Chinese_PRC_CI_AS

文本内容: 11111111 22222222

③按模板查询语句

SELECT *

FROM OPENROWSET(BULK 'E:\\Z_资料\\SSIS_TxtToDB\\USERINFO.TXT', FORMATFILE='D:\\b.xml' ) as t1 ;

本文来源:https://www.bwwdw.com/article/sj4o.html

Top