2017-01-30 4 views
-2

Ich brauche nur Stunden speichern (FORMAT 24) in einer Spalte 'HORAINICIAL' meiner Tabelle. Ich möchte nicht JJJJ/MM/TT.MySQL -> Create Tabelle mit nur Stunden und Minuten

CREATE TABLE IF NOT EXISTS `claritytractor`.`turno` (
    `IDTURNO` INT(11) NOT NULL AUTO_INCREMENT, 
    `NOMBRE` VARCHAR(150) NULL DEFAULT NULL, 
    `CANTIDADHORAS` INT(11) NULL DEFAULT NULL, 
    `HORAINICIAL` DATE NULL DEFAULT NULL, 
    `COLACION` INT(11) NULL DEFAULT NULL, 
    `FECHAMODIFICACION` DATETIME NULL DEFAULT NULL, 
    `STATUS` INT(11) NULL DEFAULT NULL, 
    PRIMARY KEY (`IDTURNO`)) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = latin1; 

Das ist mein INSERT:

INSERT INTO `claritytractor`.`turno` (`NOMBRE`, `CANTIDADHORAS`, `HORAINICIAL`, `COLACION`, `FECHAMODIFICACION`, `STATUS`) VALUES ('Normal', 8, '08:00:00', '1', '2016-12-20', '0'); 

Antwort

1

Wenn Sie kein vollständiges Datum zu speichern, ist es am besten einfache Datentypen zu verwenden, um den Wert zu speichern und den Wert auf dem Weg ändern in und aus.

definieren Ihr Feld HORAINICIAL als INT anstelle von DATE und dann entweder die Anzahl der Stunden verwenden (z.B. 8) direkt oder HOUR() verwenden, um einen Wert in DATE nur wenige Stunden zu konvertieren. Wenn die Zeit wieder extrahiert wird, kann sie bei Bedarf mit dem Quelldatum in einen Zeitstempel zurückgewandelt werden.

Weitere Informationen über den HOUR() Befehl lesen this.

+0

Ich muss '15: 30: 00 'speichern, wenn ich die Stunde verwende, speichert nur' 15 '. –

+0

Ich antwortete auf der Grundlage des Wortlauts Ihrer Frage, die angezeigt "Ich muss nur Stunden sparen." In diesem Fall würde die Verwendung eines beliebigen Datums ausreichen, und Sie können den Rest des Datums auf dem Weg nach draußen mit ähnlichen Datetime-Befehlen entfernen. –

+0

ich es wie FLOAT eingegeben haben, dann habe ich verwendet: ** Stunde ('15: 30: 00 ') + (Minute ('15: 30: 00')/60) ** Es 15.5 –

Verwandte Themen