我的表:
-------------------------------------------------------------------
leave_id emp_id leave_from leave_to status
-------------------------------------------------------------------
1 1 2015-09-29 2015-10-2 accepted
2 1 2015-10-30 2015-11-2 accepted
在上表中,如何查找一个月内的休假天数?
示例:
9月,Employee 1
已经2 leaves
(9月29日和9月30日)
10月,Employee 1
已经4 leaves
(10月1日,10月2日,10月30日和10月31日)
答案 0 :(得分:2)
您可以使用 public static void createTriangle(int size, String let) {
String output = "";
String x = let;
int y = size;
for (int z = size; z > 0; z--) {
int p = y-z;
output = output + "\n";
for(int j=0;j<=p;j++){
output=output+" ";
}
for (int d =z; d>0; d--) {
output = output + x;
}
}
System.out.println(output);
}
和least()
以及日期算术:
greatest()
只需将常量修改一个月。
您可以将其置于聚合中:
select t.*,
datediff(greatest(leave_from, '2015-09-01'),
least(leave_to, '2015-09-30')) + 1
from mytable t;