MySQL CAST函数

MySQL CAST函数

描述:CAST() 将值转换为特定类型 用法CAST(val as type)

type允许的值

type说明实例
CHAR[(N)] [charset_info]生成具有VARCHAR数据类型的字符串。没有N的话默认为val的长度。反之,如果当val的长度大于N 则从头截取到N
如果没有*charset_info*子句, CHAR则生成具有默认字符集的字符串。要明确指定字符集, *charset_info*允许使用以下值:CHARACTER SET charset_name:生成具有给定字符集的字符串。 ASCII: 的简写 CHARACTER SET latin1UNICODE: 的简写 CHARACTER SET ucs2
select CAST(12312321 as char(2)),CAST('12312321' as char(2))
-> 12 12
DATE产生一个DATE值
type 为 date 时 我们输入日期格式的字符串或数字的话可以帮我们转换为DATE 注意 输入数字时不会根据时间戳来进行转换 输入6位数值或字符串的话会这样转换 yyMMdd 这里的yy 会这样转换 00 - 69 ==> 2000 - 2069 70 - 99 ==> 1970 - 1999 ,也可以使用yyyyMMdd这种格式 或者日期字符串
select CAST(20221212 as DATE),CAST('221212' as DATE)
-> 2022-12-12 2022-12-12
DATETIME[(M)]产生一个DATETIME值,如果指定M值,则他指定的是微秒的精度。注意同上select CAST(20221212 as DATETIME),CAST('221212' as DATETIME)
-> 2022-12-12 00:00:00 2022-12-12 00:00:00
DOUBLE产生一个DOUBLE结果。在 MySQL 8.0.17 中添加。select CAST(1 as DOUBLE),CAST('81' as DOUBLE)
-> 1 81
FLOAT[(p)]如果未指定精度*p*,则生成 type 的结果 FLOAT。如果 *p*提供且 0 <= < p<= 24,则结果的类型为FLOAT. 如果 25 <= p<= 53,则结果的类型为DOUBLE。如果 p< 0 或 p> 53,则返回错误。在 MySQL 8.0.17 中添加。
-> 我直接使用FLOAT(1)的时候会报语法错误,具体原有还不太清楚
select CAST(1 as FLOAT),CAST('81' as FLOAT)
-> 1 81
JSON产生一个JSON值待完善
TIME[(M)]产生一个[TIME]值。如果给出可选*M*值,则它指定小数秒精度。
-> 转换的格式为 ssmmHH
select CAST(2212 as TIME),CAST('221212' as TIME)
->00:22:12 22:12:12
SIGNED [INT|INTEGER]产生一个带符号的BIGINT值。
UNSIGNED [INT INTEGER]产生一个无符号的BIGINT值。
*DECIMAL[M[,N]]产生一个十进制的数值,可以是小数
M为转换后的最大长度 如果VAl的长度超过M则得到的结果为达不到预期。M为转换后的整体长度不包含符号,但包含小数点后的数。 N默认是为0的,不产生小数。指定则会产生N小数如VAL的小数精度不够由0来补充
select CAST(1000 as decimal),CAST(1000 as decimal(2)),CAST('1000.11' as decimal(6,2)),CAST('1000.11' as decimal(5,2))
->1000 99 1000.11 999.99

注意事项

注意: CAST 会自左向右的进行转换 如果遇到问题则会终止 并返回遇到问题前转换的结果

如:select CAST('8111.(1.12313' as DOUBLE),CAST('81(11.1.12313' as DOUBLE)

结果为:8111 81

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假女吖☌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值