1、常用日期函数
日期加减
DATEADD常用日期获取:获取上个月第一天和最后一天
SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())-1,0)
SELECT DATEADD(MONTH,DATEDIFF(MONTH,-1,GETDATE())-1,-1)
DATEDIFF(DAY,WLConfirmDate,'2021-03-10') = 0
日期切割
convert(varchar(10),GETDATE(),120)=="2022-01-06"
2、创建视图
create view View_EdsProd
as
select * from Tab_EdsProd where Mid>1
go
來自 <Sql server中 如何用sql语句创建视图 - 小小邪 - 博客园>
3、排序规则-两张不同排序规则的表联合查询时使用
collate Chinese_Taiwan_Stroke_BIN
4、游标使用实例:
DECLARE @Dep01 NVARCHAR(50) --声明变量
DECLARE SampleCrsr1 CURSOR FOr select Dep01 from #dept1 --声明游标SampleCrsr1
OPEN SampleCrsr1--打开游标
FETCH NEXT FROM SampleCrsr1 into @Dep01--使用游标
WHILE (@@FETCH_STATUS<> -1)
BEGIN
INSERT INTO sys_dept VALUES ( '1', '0,1',@Dep01, '1', null, null, null, '0', '0', 'admin',GETDATE(), '', null);
FETCH NEXT FROM SampleCrsr1 into @Dep01--使用游标配合while使用
END
CLOSE SampleCrsr1 --关闭游标
DEALLOCATE SampleCrsr1 --撤销游标(释放资源 )
DROP TABLE #dept1 --删除临时表
5、常用语句:DECLARE --声明变量
DISTINCT--去重
清空表数据并重置ID:truncate table #11
6、类型转换:
convert(varchar(10),name)/cast(toatal as int)
7、with as 的用法
來自 <sql语句中with as 的用法_不怂,不弱,不退缩,厚积薄发-CSDN博客_sql的with>
9、判断临时表是否存在
if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..##hours') and type='U')
begin
drop table ##hours
END
10、exec sp_executesql的用法--可以带参数输出
set @target_output = 0
set @sql = 'select @target_output = isnull(SUM('+@col+'),0)*@single_hours from ##hours where dept=@Dep01'
exec sp_executesql @sql,N'@target_output int out,@Dep01 NVARCHAR(20),@single_hours DECIMAL(10,2) ',@target_output out,@Dep01,@single_hours
11、行变列
set @name =stuff((SELECT DISTINCT ',['+c_date+']' from #middle for xml PATH('')),1,1,'')
set @sql = 'select * into ##33 from #middle PIVOT(max(pro_val) for c_date in ('+@name+') ) t'
EXEC(@sql)