sqlserver常用函数

查询所有表名

select name from sysobjects where xtype='u'
select * from sys.tables

查询数据库中所有的表名及行数

SELECT a.name, b.rows
FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id
WHERE (a.type = 'u') AND (b.indid IN (0, 1))
ORDER BY a.name,b.rows DESC

查询所有的标明及空间占用量\行数\

select
object_name(id) tablename,
8*reserved/1024 reserved,
rtrim(8*dpages)+'kb' used,
8*(reserved-dpages)/1024 unused,
8*dpages/1024-rows/1024*minlen/1024 free,
rows
from sysindexes
where indid=1
order by tablename,reserved desc

常用日期函数

日期操作

DATEDIFF(MONTH,0,GetDate()) 等价于 DATEDIFF(MONTH,'1900-01-01',GetDate())

是指当前月离1900-01-01 是多少个月

Datepart():返回代表指定日期的指定日期部分的整数

语法:Datepart(datepart,date) 返回类型:int

DateName():返回代表指定日期的指定日期部分的字符串

语法:DateName(datepart,date) 返回类型:nvarchar

日期部分 缩写 备份
year yy,yyyy
quarter qq, q 季度
month mm, m
dayofyear dy, y 一年中的第几天
day dd, d
week wk, ww 一年中的第几周
weekday dw日期部分返回对应于星期中的某天的数,例如:Sunday =1 星期几
Hour hh 小时
minute mi, n 分钟
second ss, s
millisecond ms 毫秒
SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,GetDate()),0) AS '所在月的第一天'
SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,GetDate())+1,0) AS '下月第一天'


SELECT DATEADD(MONTH,1+DATEDIFF(MONTH,0,GetDate()),0)-1 AS '所在月的最一天'
SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,DATEADD(DAY,1-DATEPART(DAY,GetDate()),GetDate()))) as '所在月的最一天 保留时间'

日期格式化

Style ID Style 格式
100 或者 0 mm 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 mm dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mm 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 mm yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM

例子:

(1)select convert(varchar(10),'2018-08-12 12:00:00',112) as date_type;
         2018-08-12
(2)select convert(varchar(10),getdate(),112) as date_type;
         20180813
(3)select convert(varchar(10),getdate(),120) as date_type;
         2018-08-13
(4)select convert(varchar(20),getdate(),120) as date_type;
posted @ 2022-10-10 13:45  HansonYao  阅读(80)  评论(0编辑  收藏  举报