mysql + Tage zählen
    
Tobi
    
    
      
    
  - datenbank
- 1 misterunknown- 0 Tobi
 
- 0  dedlfix dedlfix- 0  dedlfix dedlfix
 
 nicht angemeldet
 nicht angemeldetHi,
mach ich etwas falsch? Weil ich grade eben 2-3 unsinnige Ergebnisse erhalten habe?
  
SELECT  
CASE  
WHEN (re.nixmehroffen = 1 ) THEN 'A'  
WHEN (re.rueckgaengiggemacht= 1 ) THEN 'A'  
WHEN (re.gedruckt = 0) THEN 'A'  
ELSE  
curdate() - ADDDATE(re.datum , INTERVAL re.faellig DAY)  
END  
FROM ...  
soll entweder einen A-String oder die Tage seit der Fälligkeit ergeben.
Tobi
Moin,
SELECT
CASE
WHEN (re.nixmehroffen = 1 ) THEN 'A'
WHEN (re.rueckgaengiggemacht= 1 ) THEN 'A'
WHEN (re.gedruckt = 0) THEN 'A'
ELSE
curdate() - ADDDATE(re.datum , INTERVAL re.faellig DAY)
END
FROM ...
  
Es gibt bei MySQL die Funktion DATEDIFF() :  
  
`SELECT DATEDIFF(curdate(), ADDDATE(re.datum, INTERVAL re.faellig DAY))`{:.language-sql}  
  
Das liegt IMHO daran, dass MySQL das Datumsformat 'YYYY-MM-DD' nicht addieren oder subtrahieren kann. Es versucht daher so wie ich das sehe, beides nach INT zu casten...  
  
Grüße Marco
-- 
Ich spreche Spaghetticode - fließend.
Es gibt bei MySQL die Funktion DATEDIFF() :
SELECT DATEDIFF(curdate(), ADDDATE(re.datum, INTERVAL re.faellig DAY))Das liegt IMHO daran, dass MySQL das Datumsformat 'YYYY-MM-DD' nicht addieren oder subtrahieren kann. Es versucht daher so wie ich das sehe, beides nach INT zu casten...
Hi Marco,
ja. Mit DATEDIFF läufts vorzüglich. Danke.
Tobi
Tach!
mach ich etwas falsch? Weil ich grade eben 2-3 unsinnige Ergebnisse erhalten habe?
Ich kann nichts entdecken. Mir fehlen zum Nachvollziehen aber auch Beispieldaten und eine Aussage zum Feldtyp von re.datum und re.faellig.
dedlfix.
Tach!
Ich kann nichts entdecken.
Siehe misterunknowns Antwort. Ich hab in dem Fall MySQL zu viel Intelligenz zugetraut. Ein Test mit
SELECT CURDATE() - ADDDATE('2013-07-25', INTERVAL 1 DAY)  
brachte das erwartete Ergebnis. Aber nun nochmal mit einen Monat vorher probiert, ergab 103 Tage, mit DATEDIFF() jedoch 33.
dedlfix.