mysql time类型转换_mysql8 参考手册--Date日期和Time时间类型之间的转换
在某種程度上,您可以將值從一種時間類型轉換為另一種時間類型。但是,價值可能會有所變化或信息丟失。在所有情況下,時間類型之間的轉換都取決于結果類型的有效值范圍。例如,盡管 DATE, DATETIME和 TIMESTAMP值都可以使用同一組格式來指定,但是這些類型并不都具有相同的值范圍。 TIMESTAMP值不能早于1970UTC或晚于 '2038-01-19 03:14:07'UTC。這表示日期,例如'1968-01-01',雖然有效為a DATE或 DATETIME值,但無效為 TIMESTAMP值并將其轉換為0。
DATE值 轉換:
1、轉換為DATETIME或 TIMESTAMP值會添加一個時間部分,'00:00:00'因為該 DATE值不包含任何時間信息。
2、轉換為TIME值沒有用;結果是'00:00:00'。
DATETIME和 TIMESTAMP值的 轉換:
1、轉換為DATE值需要考慮小數秒,并舍入時間部分。例如,'1999-12-31 23:59:59.499'變為 '1999-12-31',而 '1999-12-31 23:59:59.500'變為 '2000-01-01'。
2、轉換為TIME值會丟棄日期部分,因為該 TIME類型不包含日期信息。
為了將TIME值轉換為其他時間類型,CURRENT_DATE()日期值使用的值 。將TIME被解釋為經過的時間(不是當天的時間),并添加到日期。這意味著,如果時間值在從'00:00:00'到的范圍之外,則結果的日期部分不同于當前日期 '23:59:59'。
假設當前日期為“2012-01-01”。“12:00:00”、“24:00:00”和“-12:00:00”的時間值轉換為日期時間或時間戳值時,將分別生成“2012-01-01 12:00:00”、“2012-01-02 00:00:00”和“2011-12-31 12:00:00”。
轉換TIME到 DATE:是相似的,但會分別從結果“2012-01-01”、“2012-01-02”和“2011-12-31”中丟棄時間部分。
顯式轉換可用于覆蓋隱式轉換。例如,在和的比較中 DATE, 通過添加的時間部分DATETIME將 DATE值強制轉換為 DATETIME類型'00:00:00'。要通過忽略DATETIME值的時間部分來執行比較,請按 CAST()以下方式使用該 函數:
date_col = CAST(datetime_col AS DATE)
將 TIME 和d DATETIME時間值轉換為數字形式(例如,通過添加+0)取決于該值是否包含小數秒部分。當N為0(或省略)時,TIME(N) or DATETIME(N)轉換為整數;當N大于0時,轉換為具有N個十進制數字的DECIMAL值:
mysql> SELECT CURTIME(), CURTIME()+0, CURTIME(3)+0;
+-----------+-------------+--------------+
| CURTIME() | CURTIME()+0 | CURTIME(3)+0 |
+-----------+-------------+--------------+
| 09:28:00 | 92800 | 92800.887 |
+-----------+-------------+--------------+
mysql> SELECT NOW(), NOW()+0, NOW(3)+0;
+---------------------+----------------+--------------------+
| NOW() | NOW()+0 | NOW(3)+0 |
+---------------------+----------------+--------------------+
| 2012-08-15 09:28:00 | 20120815092800 | 20120815092800.889 |
+---------------------+----------------+--------------------+
總結
以上是生活随笔為你收集整理的mysql time类型转换_mysql8 参考手册--Date日期和Time时间类型之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度地图帮你免费实现手机定位图文教程
- 下一篇: mac 启动mysql多实例_实践:my