1.Sql列合并为字符串
declare @output nvarchar(max)
select @output = coalesce(@output + ',' , '') + OldColumnName from Tables_AutoCreateColumn
print @output
2.动态Sql语句传参
declare @Count int
declare @sql1 nvarchar(max)
set @sql1='
select @a =COUNT(*) from '+@NewTableName+' where '+@OldKeyId+'='+@key_IdValue+''
exec sp_executesql @sql1 ,N'@a int output',@Count output
3.日期操作函数
-- 一个月第一天的
select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
-- 本周的星期一
select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
-- 一年的第一天
select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
-- 季度的第一天
select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
-- 当天的半夜
select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
-- 上个月的最后一天
select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
-- 去年的最后一天
select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
-- 本月的最后一天
select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
-- 本年的最后一天
select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
-- 本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
-- 明天
select DATEADD(dd,1,GETDATE())
--昨天
select DATEADD(dd,-1,GETDATE())
--两个时间段之差
select datediff(day/Month/Year,StatrDate,LastDate)