0

今日と昨日の訪問者数を個別に取得しようとしています。

私の問題は、自分の日付と時刻の形式を使用していることです。これは、次のようにDBに保存されます。HH:MM DD.MM.YYYY、昨日の訪問者を取得するために、これを試しました。

$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country' AND DATE(visits) = DATE_SUB(CURDATE(),INTERVAL 1 DAY)";

そして今日のために:

$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country' AND DATE(visits) = DATE(NOW())";

しかし、それはすべてに対して0を示しています。

次に試しました:

$today = date("H:i d.m.Y");
$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country' AND DATE(visits) = DATE($today())";

しかし、それは何も出力しません。

4

1 に答える 1

1

これをタイプとして保存し、datetimeそれらをそのようなものに変換する必要があります。それまでの間、次を使用できますSTR_TO_DATE

SELECT STR_TO_DATE('15:50 27.03.2013', '%H:%i %d.%m.%Y')

結果

| STR_TO_DATE('15:50 27.03.2013'、'%H:%I%D。%M。%Y')|
-------------------------------------------------- ---
| 2013年3月27日15:50:00 + 0000 |

フィールドの適用:

$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country' 
          AND DATE(STR_TO_DATE(visits, '%H:%i %d.%m.%Y')) = DATE(NOW())";

$sql="SELECT COUNT(*) as count FROM lst_visitors WHERE country = '$country' 
          AND DATE(STR_TO_DATE(visits, '%H:%i %d.%m.%Y')) = DATE_SUB(CURDATE(),INTERVAL 1 DAY)";
于 2013-03-27T14:17:06.143 に答える