2017-05-31 8 views
0

Ich brauche Aufnahme von MySQL zwischen 22:00:00 und 02:30:00. Ich habe Verschiebung Master-TabelleIch brauche Aufnahme von MySQL zwischen 22:00:00 und 02:30:00

CREATE TABLE `mas_shift` (
`ShiftId` INT(11) NOT NULL AUTO_INCREMENT, 
`ShiftName` VARCHAR(100) NULL DEFAULT NULL, 
`From_Time` TIME NULL DEFAULT NULL, 
`To_Time` TIME NULL DEFAULT NULL, 
`In_From_Time` TIME NULL DEFAULT NULL, 
`In_To_Time` TIME NULL DEFAULT NULL, 
`Out_From_Time` TIME NULL DEFAULT NULL, 
`Out_To_Time` TIME NULL DEFAULT NULL, 
`IsActive` INT(1) NULL DEFAULT '1', 
`ColorCode` VARCHAR(11) NOT NULL DEFAULT 'NULL', 
PRIMARY KEY (`ShiftId`) 
) 
COLLATE='latin1_swedish_ci' 
ENGINE=InnoDB; 

INSERT INTO `mas_shift` (`ShiftName`, `From_Time`, `To_Time`, `In_From_Time`, `In_To_Time`, `Out_From_Time`, `Out_To_Time`, `IsActive`, `ColorCode`) VALUES ('1st Shift', '08:00:00', '16:00:00', '06:00:00', '11:30:00', '13:00:00', '22:59:00', 1, '#ffee58'); 
INSERT INTO `mas_shift` (`ShiftName`, `From_Time`, `To_Time`, `In_From_Time`, `In_To_Time`, `Out_From_Time`, `Out_To_Time`, `IsActive`, `ColorCode`) VALUES ('2nd Shift', '16:00:00', '00:00:00', '14:30:00', '20:30:00', '23:00:00', '03:00:00', 1, '#29b6f6 '); 
INSERT INTO `mas_shift` (`ShiftName`, `From_Time`, `To_Time`, `In_From_Time`, `In_To_Time`, `Out_From_Time`, `Out_To_Time`, `IsActive`, `ColorCode`) VALUES ('3rd Shift', '00:00:00', '08:00:00', '22:00:00', '02:30:00', '04:00:00', '10:30:00', 1, '#ec407a '); 

Ich brauche ShiftId für Zeit, um '23: 00: 00' zwischen In_From_Time UND In_To_Time;

Abfrage:

SELECT * FROM mas_shift as ms WHERE '23:00:00' BETWEEN ms.In_From_Time AND ms.In_To_Time; 

Für obige Bedingung Ich brauche ShiftId = 3 zu erhalten; Aber ich bekomme leere Reihen.

Vielen Dank im Voraus.

Antwort

1

Zum Beispiel 2017-01- 23.00.00 zwischen 2017-01- 22.00.00 und 2017-01- 02.30.00. Aber 23:00:00 ist nicht zwischen 22:00:00 und 02:30:00, denn diese Zeitwerte gehören zum selben Tag, der am 00:00:00 begann und am 24:00:00 endet!
Versuchen Sie, den DATETIME or TIMESTAMP Datentyp anstelle von zu verwenden, oder verwenden Sie die Werte für die verstrichene Zeit. Beispielsweise könnten Sie 26:30:00 anstelle von 02:30:00 verwenden, um das erwartete Ergebnis zu erhalten.

+0

Danke Alexander für Ihre Antwort. Kannst du mir bitte erklären, wie man die ShiftId zwischen heute Nacht und den nächsten Morgenstunden hinbekommt? Ich bekomme die Zeit (23:05:00) von der biometrischen Maschine und vergleiche diese Zeit zwischen der Schichtmaster-Tabelle, um ShiftId zu erhalten. Schlage eine andere alternative Lösung vor, um diese Zeit zu lösen. –

+0

@ YathavSriTechnology, ich habe meine Antwort hochgeladen. Hilft es? – Alexander

+0

Warte ich überprüfe und stelle dich zurück Alexander –