Đây là một cách đơn giản để làm điều đó:
SELECT EventDate, (week(EventDate) - week(curdate())) AS WeeksOut FROM Events;
Ví dụ:
mysql> select week('2010-11-18') - week ('2010-10-18');
+------------------------------------------+
| week('2010-11-18') - week ('2010-10-18') |
+------------------------------------------+
| 4 |
+------------------------------------------+
1 row in set (0.00 sec)
lựa chọn khác là tính toán khoảng thời gian trong ngày và chia cho 7:
SELECT EventDate, datediff(EventDate,curdate())/7 AS WeeksOut FROM Events;
Ví dụ:
mysql> select datediff('2010-11-18' , '2010-10-18')/7;
+-------------------------------------------+
| datediff('2010-11-18' , '2010-10-18')/7 |
+-------------------------------------------+
| 4.4286 |
+-------------------------------------------+
1 row in set (0.00 sec)
Nguồn
2010-10-18 15:07:15
Bạn muốn làm gì trong một tuần? Ví dụ: nên 3.2857 tuần là 3 tuần, 4 tuần hoặc một cái gì đó ở giữa? –
Có, nó phải được làm tròn đến toàn bộ tuần gần nhất – Andrew