---------------------------------------------------------
--查询数据库中包含某字段的所有表名
--objName表名 根据xtpe='u'这个是查询表名
use BigData_ODS
GO
select object_name(id) objName,Name as 列名
from syscolumns
where (name like'字段名') and id in(select id from sysobjects where xtype='u')
order by objname
------------------------------------------------------------
--查看所有表对应的数据量
SELECT a.name AS 表名, MAX(b.rows) AS 记录条数
FROM sys.sysobjects AS a INNER JOIN
sys.sysindexes AS b ON a.id = b.id
WHERE (a.xtype = 'u')
GROUP BY a.name
ORDER BY 记录条数 DESC
------------------------------------------------------------
--查看数据库的总数据量
SELECT SUM(记录条数) AS 总记录数
FROM (SELECT TOP (10000) a.name AS 表名, MAX(b.rows) AS 记录条数
FROM sys.sysobjects AS a INNER JOIN
sys.sysindexes AS b ON a.id = b.id
WHERE (a.xtype = 'u')
GROUP BY a.name
ORDER BY 记录条数 DESC) AS t1
------------------------------------------------------------
--xtype可以是下列对象类型中的一种:
--C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数
--IF = 内嵌表函数 P = 存储过程 PK = PRIMARY KEY 约束(类型是 K) RF = 复制筛选存储过程
-- S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 UQ = UNIQUE 约束(类型是 K)
--V = 视图 X = 扩展存储过程
--type可以是下列值之一:
-- C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束
-- FN = 标量函数 IF = 内嵌表函数 K = PRIMARY KEY 或 UNIQUE 约束
-- L = 日志 P = 存储过程 R = 规则 RF = 复制筛选存储过程
--S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 V = 视图 X = 扩展存储过程
------------------------------------------------------------
--时间查询--
--获取今天的时间 0点0时0分
select DATEADD(DAY,0,DATEDIFF(DAY,0,GETDATE()))
--本月第一天 返回格式 yyyy-MM-dd
select Convert(char(10),dateadd(dd,-day(getdate())+1,getdate()) ,126)
--当前时间两小时前
--这个小时不支持0.5这种格式 可以用SELECT DATEADD(MINUTE,-30,GETDATE()) 替代
SELECT DATEADD(hour,-1, getdate())
--a. 本月的第一天 返回格式yyyy-MM-dd HH:mm:ss
select dateadd(mm, datediff(mm,0,getdate()), 0) AS 本月的第一天
--b. 本月的最后一天
select dateadd(ms,-3,dateadd(mm, datediff(mm,0,getdate())+1, 0)) AS 本月的最后一天
--c. 上个月的最后一天
select dateadd(ms,-3,dateadd(mm, datediff(mm,0,getdate()), 0)) AS 上个月的最后一天
--d. 本周的星期一
select dateadd(wk, datediff(wk,0,getdate()), 0) AS 本周的星期一
--e. 本季度的第一天
select dateadd(qq, datediff(qq,0,getdate()), 0) AS 本季度的第一天
--f. 本季度的最后一天
select DATEADD(ms,-3,dateadd(qq, datediff(qq,0,getdate())+1, 0)) AS 本季度的最后一天
--g. 本月的第一个星期一
select dateadd(wk, datediff(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) AS 本月的第一个星期一
--h. 本年的第一天
select DATEADD(yy, DATEDIFF(yy,0,GETDATE()), 0) AS 本年的第一天
SELECT DATEDIFF(yy,0,GETDATE())
--i. 本年的最后一天
select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate())+1, 0)) AS 本年的最后一天
--f. 去年的最后一天
select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate()), 0)) AS 去年的最后一天