SQL-根据日期+通过相应的记录循环显示不同的工作日

时间:2019-04-30 11:49:58

标签: mysql

我有合同列表,我想选择所有不同的工作日(因此我需要将记录的日期转换为工作日的名称并选择不同的工作日),然后显示与特定工作日相对应的所有合同(因此我需要将日期转换为工作日,然后使用先前的选择进行处理。

示例记录:

  1. C1-24.04.19 Wed
  2. C2-19.05.19星期三
  3. C3-25.04.19 Thr
  4. C4-19.04.19星期二

和必填列表:

TUE
- C4 
WED
- C1
- C2 
THR
- C3

不知道如何在SQL中进行处理。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

SELECT DATE_FORMAT(STR_TO_DATE(date,'%d.%m.%y'), '%a') as date, contract
FROM dates
ORDER BY date

您将得到以下结果:

date  contract
Thu,  C3
Tue,  C4
Wed,  C1
Wed,  C2

答案 1 :(得分:0)

<?php 
$result1 = $mysqli->query("SELECT distinct DATE_FORMAT(cleaningdate, '%a') as contract_weekday FROM cleaning ORDER BY contract_weekday DESC") or die(mysqli_error());
while($row1 = $result1->fetch_array())  {
echo $cleaningdate = $row1['contract_weekday'];

$result = $mysqli->query("SELECT * FROM cleaning WHERE DATE_FORMAT(cleaningdate, '%a')='$cleaningdate' ORDER BY cleaningdate") or die(mysqli_error()); 

} 
?>