1

这应该使用我拥有的 PHP/MySQL 时间戳来处理所有其他数据。基本上我在 MySQL 和 PHP 中使用时间戳功能

我现在使用 MySQL 插入:

now()

或 PHP 中的类似内容:

$date=date("Y-m-d H:i:s");

这是我的一些数据:

Id          AdId    Unique Md5                                              Date                Stamp                                   IP

    61860       207     92cea3a296fdc76bac6fda219xxxxxx     2012-12-01  2012-12-01 17:48:31     74.125.181.xx
    61859       208     abe3aec5c24301db2d5803a310xxxxxx  2012-12-01    2012-12-01 17:48:31     74.125.181.xx
    61858       207     c93c67a013c64df53cbeec9346xxxxxx  2012-12-01    2012-12-01 17:48:11     95.21.xxx.138
    61857       207     596cf87f2405874c7172f6d0dcxxxxxx    2012-12-01  2012-12-01 17:47:54     188.xxx.98.242
    61856       212     bbba41c211e2829d622c55d00dxxxxxx  2012-12-01    2012-12-01 17:47:17     141.xxx.9.40

这是我的疑问之一。基本上我正在尝试使用 207 和本月的时间戳 (2012-12) 获取所有 AdId 的行总数

SELECT COUNT(adid) AS hits FROM `ha1`.`adviews` WHERE `adid`='212' AND `stamp`='2012-12'

它返回 0 个结果。我打算这样做:

<?php
$currentDate=date("Y-m-d H:i:s");
$currentMonth=date("Y-m");

$trafficsql=mysql_query("SELECT COUNT(adid) AS hits FROM `".$dn."`.`adviews` WHERE `adid`='".$rz["id"]."' AND `stamp`='".$currentMonth"'");
while($vss=mysql_fetch_array($trafficsql)){
    echo $vss["hits"];
}
4

4 回答 4

1

您可以在 php 语法中使用以下逻辑:-)

WHERE MONTH(stamp) = MONTH(CURRENT_DATE) AND YEAR(stamp) = YEAR(CURRENT_DATE)

于 2012-12-01T18:01:39.110 回答
1

尝试

$trafficsql=mysql_query("SELECT COUNT(adid) AS hits FROM `".$dn."`.`adviews` WHERE `adid`='".$rz["id"]."' AND DATE_FORMAT(`stamp`, '%Y-%m')='".$currentMonth"'");

使用:DATE_FORMAT()

于 2012-12-01T17:56:11.987 回答
0

SELECT COUNT(adid) AS hits FROM ha1.adviews WHERE adid=212 AND stamp>date_sub(now(), interval 1 month)

假设您的邮票列是日期时间类型

于 2012-12-01T17:58:21.130 回答
0

您可以将时间戳作为字符串进行比较,但随后您需要使用 LIKE

SELECT COUNT(adid) AS hits 
FROM `ha1`.`adviews` 
WHERE `adid`='212' AND `stamp` LIKE '2012-12%'
于 2012-12-01T17:56:03.110 回答