Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 php-SQL年中的一周()到字符串/date_Mysql_Date_Php - Fatal编程技术网

Mysql php-SQL年中的一周()到字符串/date

Mysql php-SQL年中的一周()到字符串/date,mysql,date,php,Mysql,Date,Php,我对MySQL数据库运行了一个查询,以获得按周分组的访问总数。 该表的结构如下: |ID int |会话字符|时间戳日期时间| 我的查询如下所示: '选择COUNTsession,WEEKOFYEARtimestamp 从统计数据 按周分组时间戳 按时间戳ASC'排序 所以我得到了一个周数数组,比如40,41,45等等,还有视图计数 如何使用PHP将其转换为可读的日期?说第40周什么的:2000次访问是不切实际的 我正在寻找StartDate EndDate/Month/Year形式的东西,例如

我对MySQL数据库运行了一个查询,以获得按周分组的访问总数。 该表的结构如下:

|ID int |会话字符|时间戳日期时间|

我的查询如下所示: '选择COUNTsession,WEEKOFYEARtimestamp 从统计数据 按周分组时间戳 按时间戳ASC'排序

所以我得到了一个周数数组,比如40,41,45等等,还有视图计数

如何使用PHP将其转换为可读的日期?说第40周什么的:2000次访问是不切实际的

我正在寻找StartDate EndDate/Month/Year形式的东西,例如2011年12月5-11日的第5周,访问次数:XXXX

您以前可能使用过哪些函数?我试过了,但运气不好

我的SQL查询是正确的方法吗?假设我正在正确地查询数据库,以了解我要完成的任务,有没有办法将周数转换为日/日期跨度

我还想知道,如果一周的时间跨度在两个月甚至两年之间,会发生什么情况。

假设: 要显示的日期是该周的星期一日期 您的主要输出是周访问量:。 您了解足够多的PHP,能够提取列短语 以下SQL命令应为您显示每年每周的会话数、每周的会话数以及所需的短语:

选择COUNTsession作为VisitCount ,WeekOfYear时间戳作为WeekOfYear\u值 ,MAKEDATE 案例 当WEEKOFYEARtimestamp=52时 然后是时间戳-1 时间戳 结束,WEEKOFYEARtimestamp*7-4为DateOfWeek_值 ,CONCAT'Week',weekofyear时间戳 ,“-”,MAKEDATE 案例 当WEEKOFYEARtimestamp=52时 然后是时间戳-1 时间戳 完,星期一时间戳*7-4-星期一 ,访问:,COUNTsession,作为短语 从统计数据 按周分组时间戳 按时间戳订购ASC 在现有数据上尝试一下

[编辑:其他代码更改]

要获取星期日输出,请执行以下操作:

SELECT COUNT(session) AS VisitCount
    , WEEKOFYEAR(timestamp) AS WeekOfYear_Value
    , CONCAT('Week ', WEEKOFYEAR(timestamp)
        , '-', MAKEDATE(
            CASE 
                WHEN WEEKOFYEAR(timestamp) = 52 
                    THEN YEAR(timestamp)-1 
                ELSE YEAR(timestamp) 
            END, 
            CASE 
                WHEN WEEKOFYEAR(timestamp) = 52 
                    THEN (WEEKOFYEAR(timestamp) * 7)+3
                ELSE (WEEKOFYEAR(timestamp) * 7)+2
            END
            )
    , ', Visits: ' , COUNT(session), '.') AS Phrase
FROM stats
GROUP BY WEEKOFYEAR(timestamp)
ORDER BY timestamp ASC

还请注意,上次更新在makedate命令中包含了另一种情况,以确保当前值和去年值的日期之间的一致性。

-1,我认为这没有任何意义。据我所知,要在mysql中返回dayofweek,数据源也必须是日期。因此,您丢失了大量关键信息。你应该重新修改你的问题。现在好点了吗?我不知道还包括什么。我想这应该有点普遍。也许我认为这是不对的?是的,没有这些信息,你几乎不可能理解你的问题。好的,回到你的问题,因为你的来源是时间戳,这意味着你可以返回任何格式,但你使用的是分组方式。聚合函数。我认为这是不可能的。。。或者,您可以添加更多输入和所需输出的示例。根据该示例数据添加一些示例数据和预期数据输出。。在您的示例中,第5-11/12/2011周-2011年11月12日是最短日期吗?最大限度你是怎么得到它的?工作起来很有魅力!是的,从那时起,我知道如何获得和展示我需要的东西。非常感谢,非常好!请注意;case语句是这样的:如果一年中的一周是52,我们确保makedate命令使用上一年而不是当前一年,以避免2011-01-01周指向2011-12-26年的一周。而且,我用-4来指星期一,我想这可能是宣布一周的方式。我怎么能得到最后一天,而不是每周的第一天?因为我在一个连续的XY图上可视化数据,X是星期一的日期,Y是访问,所以这个图看起来有点不对劲。例如,对于以下值:第1-7周->1000、第7-14周->1500、第14-21周->500,将创建以下点a1、1000、b1、1500、c1、500。如果你把他们联系起来,他们的访问似乎会在第二周下降,而不是上升!因此,我需要总结前7天的访问,并将其与一周的最后一天联系起来,而不是一周的第一天!我已经更新了我的帖子,加入了周日的输出:希望这篇文章能奏效!