Datumsproblematik
am 09.12.2006 01:28:16 von Daniel Schmidt
Hallo Newsgroup,
folgendes WHERE-Statement verwende ich in meiner Abfrage
....SELECT * FROM $sql_tabelle WHERE
((date_format(datumsspalte_in_mysql_db,'%j-%Y') <=
date_format(now(),'%j-%Y')
ich möchte dabei einen besimmten Zeitraum vom in der MySQL-DB
gespeicherten Datum bis heute eingrenzen. Die Abfrage funktioniert
nicht. Beispiel: am heutigen Datum zählt der 01.01.2007 bereits als
Vergangenheit, dh. das Jahr wird bei meiner Abfrage ignoriert. Kann mir
jemand helfen?
Grüße Daniel
Re: Datumsproblematik
am 09.12.2006 02:09:26 von Johannes Vogel
HI Daniel
Daniel Schmidt wrote:
> folgendes WHERE-Statement verwende ich in meiner Abfrage
> ...SELECT * FROM $sql_tabelle WHERE
> ((date_format(datumsspalte_in_mysql_db,'%j-%Y') <=
> date_format(now(),'%j-%Y')
> ich möchte dabei einen besimmten Zeitraum vom in der MySQL-DB
> gespeicherten Datum bis heute eingrenzen. Die Abfrage funktioniert
> nicht. Beispiel: am heutigen Datum zählt der 01.01.2007 bereits als
> Vergangenheit, dh. das Jahr wird bei meiner Abfrage ignoriert. Kann mir
> jemand helfen?
"001-2007" <= "343-2006" ist wahr, weil 3 grösser als 0 (erstes
Zeichen). Wieso nicht einfach folgendes?
select ... from ... where datum <= now()
Oder falls du ein datetime-Attribut vergleichst:
select ... from ...
where date_format(date,'%Y-%m-%d') <= date_format(now(),'%Y-%m-%d')
Oder was ich wegen der kürzeren Schreibweise auch noch gerne mache:
select ... from ...
where left(date,10) <= left(now(),10)
HTH, Johannes
Re: Datumsproblematik
am 09.12.2006 14:59:59 von Daniel Schmidt
Hallo Johannes,
ich hatte vergessen das ich zur
(date_format(datumsspalte_in_mysql_db,'%j-%Y') +$frist_in_tagen
noch eine Frist in Tagen dazuzähle. Kann ich deine Lösungen trotzdem
verwenden?
Grüße Daniel
Johannes Vogel schrieb:
> HI Daniel
>
> Daniel Schmidt wrote:
>
>>folgendes WHERE-Statement verwende ich in meiner Abfrage
>>...SELECT * FROM $sql_tabelle WHERE
>>((date_format(datumsspalte_in_mysql_db,'%j-%Y') <=
>>date_format(now(),'%j-%Y')
>>ich möchte dabei einen besimmten Zeitraum vom in der MySQL-DB
>>gespeicherten Datum bis heute eingrenzen. Die Abfrage funktioniert
>>nicht. Beispiel: am heutigen Datum zählt der 01.01.2007 bereits als
>>Vergangenheit, dh. das Jahr wird bei meiner Abfrage ignoriert. Kann mir
>>jemand helfen?
>
>
> "001-2007" <= "343-2006" ist wahr, weil 3 grösser als 0 (erstes
> Zeichen). Wieso nicht einfach folgendes?
> select ... from ... where datum <= now()
>
> Oder falls du ein datetime-Attribut vergleichst:
> select ... from ...
> where date_format(date,'%Y-%m-%d') <= date_format(now(),'%Y-%m-%d')
>
> Oder was ich wegen der kürzeren Schreibweise auch noch gerne mache:
> select ... from ...
> where left(date,10) <= left(now(),10)
>
> HTH, Johannes
--
Hallo Newsgroup,
Grüße Daniel
Re: Datumsproblematik
am 09.12.2006 15:33:33 von Johannes Vogel
Hi Daniel
Informiere dich, was TOFU ist.
Daniel Schmidt wrote:
> ich hatte vergessen das ich zur
> (date_format(datumsspalte_in_mysql_db,'%j-%Y') +$frist_in_tagen
> noch eine Frist in Tagen dazuzähle. Kann ich deine Lösungen trotzdem
> verwenden?
date_add ist dein Freund:
select ... where date_add(datum, interval $frist_in_tagen day) > now()
oder so...
Johannes