200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > mysql time类型转换_mysql8 参考手册--Date日期和Time时间类型之间的转换

mysql time类型转换_mysql8 参考手册--Date日期和Time时间类型之间的转换

时间:2022-10-01 16:12:50

相关推荐

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'。

假设当前日期为“-01-01”。“12:00:00”、“24:00:00”和“-12:00:00”的时间值转换为日期时间或时间戳值时,将分别生成“-01-01 12:00:00”、“-01-02 00:00:00”和“-12-31 12:00:00”。

转换TIME到 DATE:是相似的,但会分别从结果“-01-01”、“-01-02”和“-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 |

+---------------------+----------------+--------------------+

| -08-15 09:28:00 | 0815092800 | 0815092800.889 |

+---------------------+----------------+--------------------+

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。