我想创建一个存储时间(小时和分钟)的mysql表,例如456:45(456小时45分钟)
CREATE TABLE mytable(id VARCHAR(40)NOT NULL,my_time DATE NOT NULL);
应该使用哪种数据类型?
答案 0 :(得分:2)
如果TIME datatype range足够你,那就去吧。它以比您可能需要的更高的精度存储信息,并且有一些怪癖:
out-of-range TIME values are clipped to the appropriate endpoint of the TIME range.
否则,如果您只需要分钟,则可以使用DECIMAL数据类型。您有两种方法可供选择:
优点:您具有两位数的完全精度,您可以通过截断立即读取分钟。
缺点:0.30 + 0.30应该给1.00,而不是0.60。此外,"在27:00之前一分钟"将是26.99,而不是26.59。
优点:计算变得非常简单。
缺点:没有立即查看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
希望这有帮助,
苏海尔。