目录
时间函数
WHERE 语句
关键字
分区查询、按列分组、并给予行号
最傻逼的点
DATEPART([YEAR], date) //获取时间的年
DATEPART([MONTH], date) //获取月
CONVERT([TIME], date) //获取时间 hh:mm:ss
CONVERT(转换类型,字段,格式) 转换类型为 varchar 等,格式如下:
100 mm dd yyyy
101 mm/dd/yyyy
102 yyyy.mm.dd
103 dd/mm/yyyy
106 dd mm yyyy
108 hh:mi:ss(时间)
111 yyyy/mm/dd
112 yyyymmdd
120 yyyy-mm-dd
DATENAME(datepart, date)
datepart参数:
年 yy,yyyy
月 mm,m
日 dd,d
季度 qq,q
年中的日 dy,y
小时 hh
分钟 mi,n
秒 ss,s
毫秒 ms
微秒 mcs
纳秒 ns
周 wk,ww
星期 dw,w
Select CONVERT(varchar(100), GETDATE(), 0);--01 8 2018 5:50PM
Select CONVERT(varchar(100), GETDATE(), 100);--01 8 2018 5:50PM
Select CONVERT(varchar(100), GETDATE(), 1);--01/08/18
Select CONVERT(varchar(100), GETDATE(), 101);--01/08/2018
Select CONVERT(varchar(100), GETDATE(), 2);--18.01.08
Select CONVERT(varchar(100), GETDATE(), 102);--2018.01.08
Select CONVERT(varchar(100), GETDATE(), 3);--08/01/18
Select CONVERT(varchar(100), GETDATE(), 103);--08/01/2018
Select CONVERT(varchar(100), GETDATE(), 4);--08.01.18
Select CONVERT(varchar(100), GETDATE(), 104);--08.01.2018
Select CONVERT(varchar(100), GETDATE(), 5);--08-01-18
Select CONVERT(varchar(100), GETDATE(), 105);--08-01-2018
Select CONVERT(varchar(100), GETDATE(), 6);--08 01 18
Select CONVERT(varchar(100), GETDATE(), 106);--08 01 2018
Select CONVERT(varchar(100), GETDATE(), 7);--01 08, 18
Select CONVERT(varchar(100), GETDATE(), 107);--01 08, 2018
Select CONVERT(varchar(100), GETDATE(), 8);--18:02:28
Select CONVERT(varchar(100), GETDATE(), 108);--18:02:28
Select CONVERT(varchar(100), GETDATE(), 9);--01 8 2018 6:03:22:663PM
Select CONVERT(varchar(100), GETDATE(), 109);--01 8 2018 6:03:22:663PM
Select CONVERT(varchar(100), GETDATE(), 10);--01-08-18
Select CONVERT(varchar(100), GETDATE(), 110);--01-08-2018
Select CONVERT(varchar(100), GETDATE(), 11);--18/01/08
Select CONVERT(varchar(100), GETDATE(), 111);--2018/01/08
Select CONVERT(varchar(100), GETDATE(), 12);--180108
Select CONVERT(varchar(100), GETDATE(), 112);--20180108
Select CONVERT(varchar(100), GETDATE(), 13);--08 01 2018 18:08:32:910
Select CONVERT(varchar(100), GETDATE(), 113);--08 01 2018 18:08:32:910
Select CONVERT(varchar(100), GETDATE(), 14);--18:09:28:673
Select CONVERT(varchar(100), GETDATE(), 114);--18:09:28:673
Select CONVERT(varchar(100), GETDATE(), 20);--2018-01-08 18:10:02
Select CONVERT(varchar(100), GETDATE(), 120);--2018-01-08 18:10:02
Select CONVERT(varchar(100), GETDATE(), 21);--2018-01-08 18:11:36.033
Select CONVERT(varchar(100), GETDATE(), 121);--2018-01-08 18:11:36.033
--下面的没有相对应的了
Select CONVERT(varchar(100), GETDATE(), 22);--01/08/18 6:14:32 PM
Select CONVERT(varchar(100), GETDATE(), 23);--2018-01-08
Select CONVERT(varchar(100), GETDATE(), 24);--18:14:57
Select CONVERT(varchar(100), GETDATE(), 25);--2018-01-08 18:14:57.663
Select CONVERT(varchar(100), GETDATE(), 126);--2018-01-08T18:16:05.290
Select CONVERT(varchar(100), GETDATE(), 130);--21 ???? ?????? 1439 6:16:05:290PM
Select CONVERT(varchar(100), GETDATE(), 131);--21/04/1439 6:16:05:290PM
CASE tableField
WHEN value THEN other_tableField
ELSE tableField
END//可接多个WHEN,取别名时,用括号包含整个语句
去重 DISTINCT
ROW_NUMBER() OVER (PARTITION BY 分组列名 ORDER BY 排序列名) AS rowNum
查询中如果有字段用函数了,而别的字段没用函数,就会报错
必须要把其它的字段也用 函数 或者 放在 GROUP BY 子句中
Cheung Kwok Wing 随笔