我試圖在MySQL數據庫中存儲12/24小時(即; 00:00)的時間。目前我正在使用時間數據類型。這工作正常,但它堅持要添加列的秒。因此,您輸入09:20並將其存儲爲09:20:00。有沒有什麼辦法可以在MySQL中將它限制在00:00?在MySQL中使用時間數據類型(無秒)
9
A
回答
16
這看起來不可能。數據類型TIME
定義爲用1秒的分辨率表示一天中的時間(或經過的時間)。但是,你可以隨時使用DATE_FORMAT()
功能在SELECT
查詢您的字段格式爲HH:MM
:
SELECT DATE_FORMAT(NOW(), '%k:%i');
+-----------------------------+
| DATE_FORMAT(NOW(), '%k:%i') |
+-----------------------------+
| 4:09 |
+-----------------------------+
1 row in set (0.00 sec)
SELECT DATE_FORMAT(NOW(), '%H:%i');
+-----------------------------+
| DATE_FORMAT(NOW(), '%H:%i') |
+-----------------------------+
| 04:09 |
+-----------------------------+
1 row in set (0.00 sec)
1
的TIME
column type不接受任何參數或修改定義的範圍或精度。但是,如果您注意,可以省略秒數插入:
請注意將縮略值分配給TIME列。 MySQL 將含有冒號的縮寫TIME值解釋爲一天中的時間。 也就是說,'11:12'表示'11:12:00',而不是'00:11:12'。 MySQL使用假設兩個 最右邊的數字表示秒(也就是說,經過時間而不是一天的時間)來解釋 的縮寫值。例如,你可能會想到'1112' 和1112 的含義'11:12:00' (11點後12分鐘),但MySQL的 它們解釋爲'00:11:12'( 11分鐘,12秒)。類似地, '12'和12被解釋爲'00:00:12'。
CREATE TABLE example (
example_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
elapsed TIME NOT NULL,
PRIMARY KEY (example_id)
);
INSERT INTO example (elapsed) VALUES ('123:45:00'), ('123:45');
SELECT * FROM example;
+------------+-----------+
| example_id | elapsed |
+------------+-----------+
| 1 | 123:45:00 |
| 2 | 123:45:00 |
+------------+-----------+
...你可以通過應用適當的TIME_FORMAT()上讀取刪除它們(如果需要),並指出:
如果時間值包含一個小時一部分大於23,則 %H和%k小時格式說明符會生成大於通常的0-23的 範圍的值。另一個小時格式說明符產生小時 值模12
INSERT INTO example (elapsed) VALUES ('2:00');
SELECT example_id, TIME_FORMAT(elapsed, '%k:%i') AS elapsed
FROM example;
+------------+---------+
| example_id | elapsed |
+------------+---------+
| 1 | 123:45 |
| 2 | 123:45 |
| 3 | 2:00 |
+------------+---------+
從MySQL/5.7.5你也可以使用一個generated column獲得自動的顯示值:
-- Completely untested, I don't have 5.7 yet
CREATE TABLE example (
example_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
elapsed TIME NOT NULL,
-- Size to accomodate for '-838:59:59'
elapsed_display VARCHAR(10) AS (TIME_FORMAT(elapsed, '%k:%i')) VIRTUAL NOT NULL,
PRIMARY KEY (example_id)
);
相關問題
- 1. 無法在PHP中插入時間類型數據到mysql中
- 2. 從時間數據類型中刪除毫秒,還有:是否有毫秒級的時間數據類型?
- 3. 如何添加小時,分鐘或秒「時間」數據類型在MySQL
- 4. 在MySQL中使用`set`數據類型
- 5. Mysql時間戳數據類型
- 6. 時間數據類型 - MySQL的
- 7. 使用PHP修剪/正確顯示時間MySQL數據類型
- 8. SQL無效的數據類型時間
- 9. 什麼類型的數據用於在mysql中保存數據時間
- 10. MySql中的間隔數據類型
- 11. 在mysql中選擇日期和時間的數據類型
- 12. MySQL時間類型
- 13. 時間捆紮與MySQL時間數據類型
- 14. mysql數據類型時間戳的格式日期時間
- 15. 無法在SVM模型中使用日期時間數據
- 16. 哪種數據類型在gorm中使用時間?
- 17. 在ruby中使用時間數據類型
- 18. 時間MYSQL秒列
- 19. 時間戳數據類型
- 20. Cassandra時間數據類型
- 21. 相當於MySQL數據和時間數據類型的C#
- 22. MySQL導入數據庫錯誤時間數據類型錯誤
- 23. Mysql如何在數據庫中設置時間數據類型爲HH:MM
- 24. 如何使用JDBC在MySQL中添加'時間'類型?
- 25. 用於電影時間的MySQL數據類型
- 26. 如何解決mysql中的時間數據類型
- 27. mysql中的日期時間數據類型
- 28. 在MySQL數據庫的日期時間類型
- 29. MySQL - 使用小時和分鐘的簡單時間的最佳數據類型
- 30. 使用Sqoop導入數據,時間戳數據類型