Zugriff auf berechnete Datumsspalte in WHERE Klausel

Andreas Kretschmer andreas.kretschmer at schollglas.com
Di Mär 16 12:15:31 CET 2010


In response to Tim :
> Hallo liebe Liste,
> 
> ich habe derzeit das Problem, dass ich in einer WHERE-Klausel nicht auf
> eine Spalte zugreifen kann, die von MySQL zur Laufzeit der Abfrage erst
> errechnet wird:
> 
> SELECT S.datetime_from, S.datetime_to,
> 	IFNULL(DATE_ADD(S.datetime_to, INTERVAL -1 SECOND), 
> 	'0000-00-00 00:00:00') as datetime_to_enc
> FROM `stocks` S 
> WHERE datetime_to_enc >= '2010-03-18 14:59:59'
> 
> 
> Die Fehlermeldung von MySQL ist #1054 - Unknown column 'datetime_to_enc'
> in 'where clause'. Verstehe ich nicht, denn sowas Ähnliches hatte ich
> damals schon mit berechneten Integer-Spalten gemacht. Oder vertue ich
> mich da gerade und sowas geht grundsätzlich nicht?

Das ist so richtig, per SQL-Spec. Wenn Du das willst, mach ein Subselect
draus. Select * from (deine query ohne where) foo where datetime_to_enc = ...


> 
> Über eine kurze Rückmeldung würde ich mich freuen.

Kann natürlich sein, daß MySQL die Spec verschlimmbessert hat...


Andreas
-- 
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
GnuPG: 0x31720C99, 1006 CCB4 A326 1D42 6431  2EB0 389D 1DC2 3172 0C99