如何创建一个存储时间(小时和分钟)的mysql表?

时间:2015-11-09 13:43:32

标签: mysql sql

我想创建一个存储时间(小时和分钟)的mysql表,例如456:45(456小时45分钟)

CREATE TABLE mytable(id VARCHAR(40)NOT NULL,my_time DATE NOT NULL);

应该使用哪种数据类型?

4 个答案:

答案 0 :(得分:2)

如果TIME datatype range足够你,那就去吧。它以比您可能需要的更高的精度存储信息,并且有一些怪癖:

out-of-range TIME values are clipped to the appropriate endpoint of the TIME range.

否则,如果您只需要分钟,则可以使用DECIMAL数据类型。您有两种方法可供选择:

  1. 小数是分钟。因此,1200小时30分钟是1200.30。
  2. 优点:您具有两位数的完全精度,您可以通过截断立即读取分钟。

    缺点:0.30 + 0.30应该给1.00,而不是0.60。此外,"在27:00之前一分钟"将是26.99,而不是26.59。

    1. 标准化为小时。也就是说," 1200.5"代表1200小时半,或1200小时30分钟。
    2. 优点:计算变得非常简单。

      缺点:没有立即查看17.25并将其解释为17小时15分钟。你需要得到小数部分并乘以0.60。此外,要获得可接受的精度,您需要两位以上的小数(3或4取决于转换技术)。

      另一种可能性是做MySQL所做的事情(尽管是在微秒级别)并使用INTEGER字段来存储分钟。然后1200小时30分钟将由整数72030表示。除以60得到小时,以60为模数得到分钟。

答案 1 :(得分:1)

TIME - 以HH:MM:SS

显示值

范围是' -838:59:59'到' 838:59:59'。

您可以使用字符串或数字为时间列指定值。

答案 2 :(得分:0)

1)创建VARCHAR列,当您保存数据时,请使用以下分隔符: -

456:45,456_45,456-45

2)其他更好的选项是convert time in second或创建Int列,并在seconds

中节省时间

答案 3 :(得分:0)

应该使用的数据类型是:

DATETIME

或者看看这个:

http://www.w3schools.com/sql/sql_dates.asp

希望这有帮助,

苏海尔。