学习 · 2021年8月20日

SQL常用记录

ctrl + k + c : 注释多行

ctrl + k + u : 取消多行注释

查询与截取字符

CHARINDEX ( 要找到的字符串 , 被查找的字符串 ,开始查找的位置 )

SUBSTRING( 字符串 , 开始位 , 长度 )

日期

CONVERT(VARCHAR(10),GETDATE(),n)

n如下

100 或者 0 mon dd yyyy hh:miAM (或者 PM)

101 mm/dd/yy

102 yy.mm.dd

103 dd/mm/yy

104 dd.mm.yy

105 dd-mm-yy

106 dd mon yy

107 Mon dd, yy

108 hh:mm:ss

109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)

110 mm-dd-yy

111 yy/mm/dd

112 yymmdd

113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)

114 hh:mi:ss:mmm(24h)

120 或者 20 yyyy-mm-dd hh:mi:ss(24h)

121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)

126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)

130 dd mon yyyy hh:mi:ss:mmmAM

131 dd/mm/yy hh:mi:ss:mmmAM

四舍五入

CONVERT(decimal(10,2),1.0461)

CAST(1.0461 as decimal(10,2))

ROUND(1.0461,2) 后面0保留

floor(1.06)向下取整为 1

ceiling(1.02)向上取整为 2

rtrim()去除右边空格

ltrim()去除左边空格

DATEPART(yy,GETDATE())

year(GETDATE()) 年

DATEPART(mm,GETDATE())

month(GETDATE()) 月

DATEPART(dd,GETDATE())

day(GETDATE()) 日

DATEPART(WW,GETDATE()) 周

不够6位前补0

isnull(REPLICATE(‘0’,6 – len(‘123′))+’123’,”)

right(‘000000’+’123’,6)

图片

函数

CREATE FUNCTION [dbo].[fn_fun]
(
@key NVARCHAR(10)
)
RETURNS VARCHAR(10)
AS
BEGIN
DECLARE @code VARCHAR(10)
if(LEN(@key)=1)
begin
SET @code=@key
end
if(LEN(@key)=2)
begin
SET @code=case
when @key=’10’ then ‘A’


…else…end
end
return @code
end

视图

CREATE VIEW [dbo].[t_view]
as
select * from table where

存储过程

CREATE PROCEDURE caozuo
@st varchar(10)
as
调用 exec caozuo ‘x’