Ich habe eine Abfrage die Anzahl der Busse zu erhalten, die pro date.So weniger als 100 km reisen ich die Abfrage in PostgreSQL verwendenWie in HANA bis heute trunc
select day,count(*)as bus_count from(
SELECT date_trunc('hour',start_time)::timestamp::date as day,bus_id,sum(distance_two_points) as distance
FROM public.datatable where start_time >= '2015-09-05 00:00:00' and start_time <= '2015-09-05 23:59:59'
group by day,bus_id
) as A where distance<=250000 group by day
Die Abfrage gibt das Ergebnis
day bus_id distance
___ ________ _________
"2015-09-05 00:00:00" 1 523247
"2015-09-05 00:00:00" 2 135114
"2015-09-05 00:00:00" 3 178560
"2015-09-05 00:00:00" 4 400071
"2015-09-05 00:00:00" 5 312832
"2015-09-05 00:00:00" 6 237075
Deshalb möchte ich jetzt diese gleiche Abfrage verwenden in SAP HANA (gleiche Ergebnisse zu erzielen), aber es gibt kein Datum trunc Funktion und ich habe auch versucht,
SELECT EXTRACT (DAY FROM TO_DATE (START_TIME, 'YYYY-MM-DD')) "extract" as day,bus_id,sum(distance_two_points) as distance
FROM public.datatable where start_time >= '2015-09-05 00:00:00' and start_time <= '2015-09-05 23:59:59'
group by day,bus_id
) as A where distance<=250000 group by day
Jede Hilfe wird geschätzt.
Sicher, das wird etwas schneller als to_nvarchar. Ich denke, die Dokumentation ist hier nicht sehr genau, es heißt für to_date: "Konvertiert eine Datumszeichenfolge in einen DATE-Datentyp". Ich denke für Datum/Uhrzeit-Typen macht es eine direkte Konvertierung, nicht per String ... –
Ja, die Dokumentation ist in vielen Aspekten nicht besonders umfangreich. Ein Blick auf die Funktionssignatur zeigt, dass to_date alle Arten von Datentypen als Eingabe akzeptiert. Ein weiteres wichtiges Problem ist, dass Sie normalerweise keinen STRING-Datentyp möchten, wenn Sie mit einem DateType-Datentyp beginnen und nur den Stunden-Teil davon loswerden möchten. Die Erwartung wäre, immer noch mit einem Datetime-Datentyp zu arbeiten. –
@LarsBr. Das Problem ist, ich brauche einen Timestamp ohne Zeitzone und kein Datum. Ansonsten kann ich auch alles separat extrahieren und kombinieren sie außerhalb der Abfrage, aber das dauert auch ein bisschen lange Zeit. –