Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:如何选择本周的记录?_Mysql_Date - Fatal编程技术网

MySQL:如何选择本周的记录?

MySQL:如何选择本周的记录?,mysql,date,Mysql,Date,我有表temp,结构如下: 我希望获得本周的记录,例如,如果现在是2013年11月21日,我希望获得2013年11月18日至2013年11月24日(本周)的所有行 现在我看到下一个算法: 获得工作日 计算星期一是几天前 计算星期一的日期 计算未来日期星期日 按时提出要求 请告诉我,是否存在较短的算法(最好在查询MySQL中) 添加的问题是:为什么选择日期2013年11月17日(星期日)-2013年11月23日(星期六)以及如何获取日期2013年11月18日(星期一)-2013年11月24日(星期

我有表
temp
,结构如下:

我希望获得本周的记录,例如,如果现在是2013年11月21日,我希望获得2013年11月18日至2013年11月24日(本周)的所有行

现在我看到下一个算法:

  • 获得工作日
  • 计算星期一是几天前
  • 计算星期一的日期
  • 计算未来日期星期日
  • 按时提出要求
  • 请告诉我,是否存在较短的算法(最好在查询MySQL中)

    添加的问题是:为什么选择日期
    2013年11月17日(星期日)-2013年11月23日(星期六)
    以及如何获取日期
    2013年11月18日(星期一)-2013年11月24日(星期日)

    查询:

    select * from temp
    where yearweek(`date`) = yearweek(curdate())
    
    谢谢

    使用:


    使用
    YEARWEEK
    。如果您使用
    WEEKOFYEAR
    ,您还将获得前几年的记录

    SELECT id, name, date
    FROM table
    WHERE YEARWEEK(date)=YEARWEEK(NOW());
    

    要选择日、周和月的记录,请使用以下方法:

    function my_func($time, $your_date) {
    if ($time == 'today') {
        $timeSQL = ' Date($your_date)= CURDATE()';
    }
    if ($time == 'week') {
        $timeSQL = ' YEARWEEK($your_date)= YEARWEEK(CURDATE())';
    }
    if ($time == 'month') {
        $timeSQL = ' Year($your_date)=Year(CURDATE()) AND Month(`your_date`)= Month(CURDATE())';
    }
    
    $Sql = "SELECT * FROM  your_table WHERE ".$timeSQL
    return $Result = $this->db->query($Sql)->result_array();
    }
    

    你可以用下面的方法来做

    SELECT DATE_FORMAT("2017-06-15", "%U");
    
    获取周数(从00到53) 其中(星期日第一天和星期一最后一天)

    可能对你有用

    例如:

    SELECT DISTINCT DATE_FORMAT('dates', '%U') AS weekdays FROM table_name;
    

    你试过什么?-你没看见吗?我写算法查找。或者你用算法写coe?@YourCommonSense请告诉我你为什么要标记mysqli?请告诉我你的问题与mysqli有什么关系?@YourCommonSense我认为这个问题对于mysql和mysqli来说什么是最好的?WEEKOFYEAR还是yearweek?使用yearweek。。如果你使用WEEKOFYEAR,你也会得到往年的记录。编辑我的答案什么是最好的?WEEKOFYEAR或yearweek?使用
    yearweek()
    可以指定一个附加参数,一周从哪一天开始。请告诉我为什么它会在2013年11月17日(星期日)-2013年11月23日(星期六)查询select record,以及如何在2013年11月18日(星期一)-2013年11月24日(星期日)获取记录?使用类似
    1
    的特定模式。看见
    SELECT DATE_FORMAT("2017-06-15", "%U");
    
    SELECT DISTINCT DATE_FORMAT('dates', '%U') AS weekdays FROM table_name;