Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Porównywanie dat
Forum PHP.pl > Forum > Bazy danych > MySQL
macth
Sytuacja wygląda tak.
Jest sobie tabela w bazie. Pola tej tabeli to między innymi: id_kat, data_waz, aktywne. Data_waz jest zapisana w formacie timestamp.

Chcę zliczyć ilość rekordów w bazie, które mają id_kat=5, aktywne=1 i date_waz > od dzisiaj. Czyli, chcę wyświetlić ilość rekordów w bazie, których data ważności jeszcze nie minęła.

Znalazłem coś takiego:
Kod
<?php
$dzisiaj = time();

$sql_ads = "select count(*) as total from tabela where id_kat=5 and date_waz > '".$dzisiaj."' and aktywny = '1'";

$resultads = sql_query($sql_ads,$dbi);
$totalads = sql_fetch_array($resultads,$dbi);
echo "$totalads";
?>


Problemem jest tylko to, że w związku z wykorzystaniem formatu timestamp porównywana jest ilość sekund -- powoduje to sytuację, że rekord z date_waz 23.04.2007 11:12:00, przestaje być ważny 23.04.2007 11:12:01, a ja chciałbym, żeby był ważny aż do północy.

Czyli jak przerobić powyższe, żeby porównywana była tylko data (dzień miesiąc rok) pola data_waz i zmiennej $dzisiaj.

Potrzebuję tylko wyświetlić ilość rekordów ważnych, dlatego wolę zrobić taką funkcję, niż przeszukiwać cały skrypt, żeby zminić zapis daty w bazie. W dodatku jestem początkujący :/
Sedziwoj
  1. SELECT count(*) AS total FROM tabela WHERE id_kat=5 AND date(date_waz) > 'rrrr-mm-dd' AND aktywny = '1'

To powinno działaś, choć sam mam nikle doświadczenie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.