1

これは、私が持っているPHP/MySQLタイムスタンプを持つ他のすべてのデータに対応する必要があります。基本的に、MySQLとPHPのタイムスタンプ機能を使用します

MySQL用にnowを使用して挿入します。

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

これは私の質問の1つです。基本的に、207のすべてのAdIdと今月のタイムスタンプ(2012-12)の行の合計を取得しようとしています。

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

試す

$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 に答える
1

php構文で次のロジックを使用できます:-)

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

于 2012-12-01T18:01:39.110 に答える
0

タイムスタンプを文字列として比較できますが、LIKEを使用する必要があります

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

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

スタンプ列のタイプがdatetimeであると仮定します

于 2012-12-01T17:58:21.130 に答える