查找与增加的天数相对应的行

时间:2018-02-24 14:40:18

标签: mysql sql

我有一个mysql表,其中有一个数字列,指的是模式中的星期几。

1 =星期一到7 =星期天。

如果模式大于一周,则数字会继续增加,因此星期六将是20,而不是20。

任何人都可以帮助构建查询,查找与一周中特定日期相关的所有数字吗?

2 个答案:

答案 0 :(得分:2)

您可以使用<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/js/bootstrap-datepicker.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/css/bootstrap-datepicker3.css"/> <script> $(document).ready(function(){ var date_input=$('input[name="slot_date"]'); //our date input has the name "slot_date" var container=$('.bootstrap-iso form').length>0 ? $('.bootstrap-iso form').parent() : "body"; date_input.datepicker({ format: 'dd/mm/yyyy', container: container, todayHighlight: true, autoclose: true, }) }) </script> 在点击7后将代表工作日圈子的数字重新设置为1.公式为MOD

MOD(weekday-1, 7)+1

Demo.

答案 1 :(得分:0)

你可以使用mod运算符作为@dasblinkenlight在他的回答中解释。要获得当天的名字,请执行以下操作:

select A.weekday, B.day FROM
(select
    weekday,
    mod(weekday-1,7)+1 actualWeekday
from test) A join (
    select 1 weekday, 'MONDAY' day UNION ALL
    select 2 weekday, 'TUESDAY' day UNION ALL
    select 3 weekday, 'WEDNESDAY' day UNION ALL
    select 4 weekday, 'THURSDAY' day UNION ALL
    select 5 weekday, 'FRIDAY' day UNION ALL
    select 6 weekday, 'SATURDAY' day UNION ALL
    select 7 weekday, 'SUNDAY' day
  ) B on A.actualWeekday=B.weekday
order by A.weekday;

请参阅DEMO