10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

11.2.7日期和时间类型的转换

在某种程度上,您可以将值从一种时态类型转换为另一种时态类型。然而,可能会有一些价值的改变或信息的丢失。在所有情况下,时态类型之间的转换都取决于结果类型的有效值范围。例如,尽管日期DATETIME,时间戳所有的值都可以使用相同的一组格式来指定,类型并不都有相同的值范围。时间戳取值不能早于1970UTC或晚于“2038-01-19 03:14:07”UTC。这意味着日期如“1968-01-01”,而作为日期DATETIME值,不能作为时间戳值,并被转换为0

转换日期价值观:

  • 转换到一个DATETIME时间戳价值增加了时间的一部分“就是”因为日期值不包含时间信息。

  • 转换到一个时间价值是没有用的;结果是“就是”

转换DATETIME时间戳价值观:

  • 转换到一个日期Value将小数秒考虑在内,并对时间部分进行舍入。例如,“1999-12-31 23:59:59.499”就变成了“1999-12-31”,而“1999-12-31 23:59:59.500”就变成了“2000-01-01”

  • 转换到一个时间值丢弃日期部分,因为时间类型不包含日期信息。

的转换时间的值转换为其他时间类型当前日期()用于日期部分。的时间被解释为经过的时间(不是一天中的时间)并添加到日期中。这意味着,如果时间值在范围之外,则结果的日期部分与当前日期不同“就是”的23:59:59

假设当前日期为“2012-01-01”时间的值“12:00:00”“24:00:00”,“12:00:00”,转换为DATETIME时间戳值,导致“2012-01-01 12:00:00”“2012-01-02”就是,“2011-12-31 12:00:00”,分别。

转换时间日期类似,但从结果中去掉了时间部分:“2012-01-01”“2012-01-02”,“2011-12-31”,分别。

显式转换可用于覆盖隐式转换。例如,比较日期DATETIME值,日期值强制为DATETIME通过添加时间部分来键入“就是”.的时间部分来执行比较DATETIME值,使用把()作用方式如下:

date_col=投(datetime_col日期)

转换时间DATETIME值转换为数字形式(例如,通过添加+0)取决于该值是否包含小数秒部分。时间(NDATETIME (N何时转换为整数N是0(或省略)和小数价值与N小数位数时N大于0:

mysql> SELECT CURTIME(), CURTIME()+0, CURTIME(3)+0;+-----------+-------------+--------------+ | CURTIME () | CURTIME () + 0 | CURTIME (3) + 0  | +-----------+-------------+--------------+ | 09:28:00 | 92800 | 92800.887  | +-----------+-------------+--------------+ 现在mysql > SELECT(),() + 0,现在(3)+ 0;+---------------------+----------------+--------------------+ | 现在()|()现在(3)+ 0 + 0 |  | +---------------------+----------------+--------------------+ | 2012-08-15 09:28:00 | 20120815092800 | 20120815092800.889  | +---------------------+----------------+--------------------+