-
数据库之SQL技巧整理案例
这篇文章主要介绍了数据库之SQL技巧整理案例,本篇文章通过整合了多种场景下的简要案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
一、获得给定月份的周日数
根据给定的某个日期,计算这个月份的周日的天数。
根据系统变量@@DATEFIRST的值,判断周日的序号为【DatePart(WEEKDAY,RQ)= (07-@@DateFirst) % 7 + 1】。下面列出了周日、周一…周六的公式
公式 | 周几 |
---|---|
(7-@@DateFirst)%7 +1 | 周日 |
(7-@@DateFirst)%7 +2 | 周一 |
(7-@@DateFirst)%7 +3 | 周二 |
(7-@@DateFirst)%7 +4 | 周三 |
(7-@@DateFirst)%7 +5 | 周四 |
(7-@@DateFirst)%7 +6 | 周五 |
(7-@@DateFirst)%7 +7 | 周六 |
下面是获得周日的SQL语句,SQL语句采用了嵌套循环的方式来获取数据
1 2 3 4 5 6 7 8 9 10 11 12 |
|
其中:
【DateAdd(MM, DateDiff(MM,0,‘2019-08-21'), 0)】是获取当月第一天的通常做法
运行结果如下:
+---+---------------------+
|RN | RQ |
|---+---------------------|
| 1 | 2019-08-04 00:00:00 |
| 2 | 2019-08-11 00:00:00 |
| 3 | 2019-08-18 00:00:00 |
| 4 | 2019-08-25 00:00:00 |
+---+---------------------+
二、获得给定月份的所有天的日期
其中:
【DateDiff(Month,fDay+1,@RQ) = 0】是判断月份相等的通常做法
1 2 3 4 5 6 7 8 9 10 11 |
|
下面是运行结果
fDay
---------------------
2019-09-01 00:00:00
2019-09-02 00:00:00
2019-09-03 00:00:00
...
2019-09-23 00:00:00
2019-09-24 00:00:00
2019-09-25 00:00:00
2019-09-26 00:00:00
2019-09-27 00:00:00
2019-09-28 00:00:00
2019-09-29 00:00:00
2019-09-30 00:00:00
三、获得子字符串列表
利用递归来获得给定字符串的SPLIT方法
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
下面是运行效果
RN SplitStr
------------------------
1 总经理室
2 销售部
3 会计部
4 人事部
5 工会
6 后勤部
7 生产计划部
8 动力分厂
9 质量检验部
10 运输部
------------------------
给定一个带有分隔符的字符串,通过这个语句获得各个字段的列表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
下面是运行效果
+---+---------------------+
|RN | SplitStr |
|----+---------------------|
| 1 | 科目名称 |
| 2 | 身份证号 |
| 3 | 学员姓名 |
| 4 | 教练编号 |
| 5 | 教练姓名 |
| 6 | 培训次数 |
| 7 | 合计次数 |
| 8 | 负责比例 |
+---+---------------------+
四、获得本周指定周几的日期
根据指定获得的周几,得到日期
1 2 3 4 5 6 7 8 9 |
|
到此这篇关于数据库之SQL技巧整理案例的文章就介绍到这了
原文:https://www.jb51.net/article/216794.htm