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;

浙公网安备 33010602011771号