Ich habe die folgende DatenbankErhalten Sie Datensätze zwischen zwei Daten mit überlappenden Zeitintervallen
CREATE TABLE `table` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`time` bigint(20) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`messages` varchar(2000) NOT NULL,
PRIMARY KEY (`id`)
)
INSERT INTO `table` VALUES (1,1467311473,"Jim", "Jim wants a book"),
(2,1467226792,"Tyler", "Tyler wants a book"),
(3,1467336672,"Phil", "Phil wants a book");
Ich brauche die Datensätze zwischen Datum 29. Juni 2016 und 1. Juli 2016 für Zeitintervalle 18.59.52 bis 01 zu erhalten: 31:12. Ich schrieb eine Abfrage, aber es gibt nicht die gewünschte Ausgabe
SELECT l.*
FROM table l
WHERE ((time >=1467226792) AND (CAST(FROM_UNIXTIME(time/1000) as time) >= '18:59:52') AND (CAST(FROM_UNIXTIME(time/1000) as time) <= '01:31:12') AND (time <=1467336672))
Irgendwelche Vorschläge ??
werfen Sie Ihre Zeitstempel Datetimes. –
Ich bin wirklich verwirrt. Was ist "emd_date" und "start_date"? Warum haben Sie String-Konstanten? Welche Spalten kommen vom Tisch? Beispieldaten und gewünschte Ergebnisse würden helfen. –
@GordonLinoff die Abfrage funktioniert nicht, wenn start_date = 21:30:00 und end_date ist 03:30:00 – Unaffected