Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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 使用sql创建一列,显示一周的第一天和最后一天_Mysql_Sql_Format - Fatal编程技术网

Mysql 使用sql创建一列,显示一周的第一天和最后一天

Mysql 使用sql创建一列,显示一周的第一天和最后一天,mysql,sql,format,Mysql,Sql,Format,正在尝试创建一列,该列将告诉我weekofyear()以及日期: Week Date org cost -------------------------------------------- 50 "2016/12/12-2016/12/18" 1 400 51 "2016/12/19-2016/12/25" 1 400 52 "2016/12/26" 1 400

正在尝试创建一列,该列将告诉我weekofyear()以及日期:

Week  Date                       org   cost
--------------------------------------------
50    "2016/12/12-2016/12/18"    1     400
51    "2016/12/19-2016/12/25"    1     400
52    "2016/12/26"               1     400
这告诉我第52周只包括12月26日的数据,而不是整周的数据

以下是我的查询:

SELECT 
    weekofyear(date) as week_number,
    exchange,
    country,
    channel,
    sum (media_cost) as mc 
FROM 
    imps
WHERE 
    date BETWEEN '2016-12-26' AND '2017-01-08'
GROUP BY
    weekofyear(date) as week_number,
    exchange,
    country,
    channel;
我已经看过了,但这并不能解决看它包括哪些日子的问题。
使用垃圾箱可能有用吗?你有什么建议

在您的查询中,
其中
不起作用,因为字符串“2016/12/12-2016/12/18”永远不会在两个日期之间。您需要创建两个日期列,例如
week\u begin
week\u end
。然后您的
位置可以是:

WHERE week_begin BETWEEN '2016-12-26' AND '2017-01-08'
   OR week_end BETWEEN '2016-12-26' AND '2017-01-08'

信息如此之少,很难理解一个问题。请提供一些示例数据以及您希望获得的该示例的结果。请参阅,我真的不知道您要求的是什么,但PHP中的strotime函数可以将周数转换为如下日期:
date(“Y-m-d”,strotime(“2017W01”)。这将给你2017年第一周的第一次约会。@CptMisery试图让这个问题更具说服力clear@Mureinik添加了更多数据和示例结果