birdyb
Goto Top

SQL Anywhere Datediff

Hallo zusammen,

ich habe hier ein kleines Problem mit SQL-Anywhere. Ich habe eine Tabelle in der es eine Spalte für ein Startdatum, eine Startzeit, ein Enddatum und eine Endzeit gibt.
Gefragt ist nun die Zeit zwischen Start und Ende.
Bisher habe ich folgendes probiert:
select first 
wdl_dvon,
wdl_zvon,
wdl_dbis,
wdl_zbis, 
cast((wdl_dvon+wdl_zvon) as datetime) as temp_von,
cast((wdl_dbis+wdl_zbis) as datetime) as temp_bis,
DATEDIFF(second,temp_von,temp_bis) as gesamt

from wdl

Leider erhalte ich nur dieses Ergebnis:
2016-05-11 13_30_36-ergebnis sql

Hat jemand von euch eine Idee für die Lösung des Problems?

Vielen Dank und beste Grüße!


Berthold

Content-Key: 304212

Url: https://administrator.de/contentid/304212

Printed on: April 19, 2024 at 08:04 o'clock

Member: MrCount
MrCount May 11, 2016 at 11:52:56 (UTC)
Goto Top
Hi,

bekommst du denn das richtige Ergebnis, wenn du

DATEDIFF(second,'2015-06-21 20:01:00','2015-06-21 20:15:00') as gesamt  

verwendest?
Member: BirdyB
BirdyB May 11, 2016 at 11:57:50 (UTC)
Goto Top
Leider nicht. Gleiche Ausgabe wie zuvor. face-sad
Member: ukulele-7
ukulele-7 May 11, 2016 at 12:10:40 (UTC)
Goto Top
Du kannst im Select nicht mit datediff() auf Spalten zugreifen die erst durch den Select erstellt werden. Du musst also entweder
DATEDIFF(second,cast((wdl_dvon+wdl_zvon) as datetime),cast((wdl_dbis+wdl_zbis) as datetime)) as gesamt
machen oder den Select verschachteln.
Member: MrCount
MrCount May 11, 2016 at 12:12:49 (UTC)
Goto Top
Wie sieht es mit

SELECT SECONDS('2015-06-21 20:01:00', '2015-06-21 20:15:00') AS gesamt  
bzw.
SELECT SECONDS(temp_von, temp_bis) AS gesamt

aus?
Member: BirdyB
BirdyB May 11, 2016 at 12:14:52 (UTC)
Goto Top
Problem gelöst: Man muss das ganze noch als integer casten, dann passt es auch... dämliches System... face-sad