10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.5 kb
手册页(Zip)- 372.6 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

11.2.7日期和时间类型转换

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

转换日期价值观:

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

  • 转换为时间价值不是有用的;结果是“就是”

转换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转换为整数时N0(或省略)和a小数价值与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  | +---------------------+----------------+--------------------+