mysql查询获取2日期之间的第一个特定日期
问题描述:
如何获取2个日期之间的第一个星期日? 我只有2 myTable的字段(dt_from和dt_to)mysql查询获取2日期之间的第一个特定日期
dt_from = '2016-08-6';
dt_to = '2016-08-19';
SELECT firstsunday FROM myTable BETWEEN dt_from AND dt_to;
答
大约从日期本身获得的第一个星期日刚过怎么过吗?
SELECT DATE_ADD(A.date_from, INTERVAL (6 - WEEKDAY(A.date_from)) DAY) from myTable as A;
http://sqlfiddle.com/#!9/7fce5
如果星期天没有日期间:
SELECT DATE_ADD(A.date_from, INTERVAL (6 - WEEKDAY(A.date_from)) DAY) as firstsunday from myTable as A where DATE_ADD(A.date_from, INTERVAL (6 - WEEKDAY(A.date_from)) DAY) between A.date_from and A.date_to;
http://sqlfiddle.com/#!9/83d0f0/4
一点点短:
SELECT firstsunday from (SELECT A.date_from, A.date_to, DATE_ADD(A.date_from, INTERVAL (6 - WEEKDAY(A.date_from)) DAY) as firstsunday from myTable as A) as B where B.firstsunday between B.date_from and B.date_to;
答
试试这个:
SELECT dt, DAYNAME(dt) as day
FROM myTable WHERE dt BETWEEN date1 AND date2
ORDER BY dt
WHERE day = "Sunday"
LIMIT 0,1
+0
您好先生,thnx您的速度响应..我编辑我的帖子先生复制我当前的表设置。 (我没有dt字段) –
答
假设你只需要起诉分贝来获得日期范围,你不希望任何国王查询。
<?php
echo date('m/d/Y', strtotime('next Sunday', strtotime('2016-08-6')));
你可以添加一些验证,以确保它的结束日期
+0
嗨,先生,thnx您的答复,,但我想直接从查询中获得它 –
谢谢先生,它工作得很好。 –
@Strawberry我已经更新了答案。但我不知道如何缩短它。 –
什么是创造性的解决方案。 +1 – BeetleJuice