このページは機械翻訳したものです。
        ある程度まで、ある時間型から別の時間型に値を変換できます。 ただし、値の変更や情報の損失が生じることがあります。 どの場合でも、時間型間の変換は、変換される型で有効な値の範囲に依存します。 たとえば、DATE、DATETIME、および TIMESTAMP 値はすべて、同じセットの形式を使用して指定できますが、すべての型で値の範囲が同じであるわけではありません。 TIMESTAMP 値は、1970 UTC より古い値にしたり、'2038-01-19 03:14:07' UTC より新しい値にしたりできません。 つまり、'1968-01-01' などの日付は、DATE または DATETIME 値としては有効ですが、TIMESTAMP 値としては有効ではなく、0 に変換されます。 
      
        DATE 値の変換:
      
- DATE値には時間情報が含まれないので、- DATETIMEまたは- TIMESTAMP値に変換すると、- '00:00:00'の時間部分が追加されます。
- TIME値への変換は有用ではありません。結果は- '00:00:00'になります。
        DATETIME および TIMESTAMP 値の変換:
      
- DATE値への変換では、小数秒が考慮され、時間部分が丸められます。 たとえば、- '1999-12-31 23:59:59.499'は- '1999-12-31'になり、- '1999-12-31 23:59:59.500'は- '2000-01-01'になります。
- TIME型には日付情報が含まれないので、- TIME値に変換すると日付部分が破棄されます。
        TIME 値を他の時間型に変換する場合、CURRENT_DATE() の値が日付部分に使用されます。 TIME は (時間ではなく) 経過時間として解釈され、日付に追加されます。 これは、時間値が '00:00:00' から '23:59:59' の範囲から外れている場合に、結果の日付部分が現在の日付と異なることを意味します。 
      
        現在の日付が '2012-01-01' であるとします。 '12:00:00'、'24:00:00'、'-12:00:00' の TIME 値は、DATETIME または TIMESTAMP 値に変換されると、それぞれ '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 値は、'00:00:00' の時間部分を追加することにより、強制的に DATETIME 型に変更されます。 代わりに DATETIME 値の時間部分を無視して比較を実行するには、次の方法で CAST() 関数を使用します。 
      
date_col = CAST(datetime_col AS DATE)
        TIME および DATETIME 値の数値形式への変換 (+0 の追加など) は、値に小数秒部分が含まれているかどうかによって異なります。 TIME( または N)DATETIME( は、N)N が 0 (または省略) の場合は整数に変換され、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 |
+---------------------+----------------+--------------------+