Mysql强制类型转换
来源:互联网 发布:thinkphp3.2 商城源码 编辑:程序博客网 时间:2024/06/05 11:20
项目要求: 将表中请求操作时间大于60分钟的用户的信息删除。
问题来了:建表的时候为了方便,全部字段都是用String 类型存储的(为了方便包装成Json给前端传值)。但是用户创建的时间create_time为了使用mysql的now()函数,定义为了date类型,而返回时间差是要传给前台所以定义的是String类型。
第一:获得时间差,需要以分钟计。
因为create_time是调用了now()函数,所以该列记录的值 类似 "2017-2-20 22:44:02",需要先用to_seconds()函数来把时间转化为秒钟。
那么时间差即为:(to_seconds(now())-to_seconds(create_time))
因为要的是分钟,所以(to_seconds(now())-to_seconds(create_time))/60
然后因为保留的小数位太多了,所以我就开始了漫漫保留小数/取整之路...................
总结出来一句话,truncate报错,convert报错,FORMAT报错,cast报错..........
最后总算是找到了一个能用的,floor,向下取整,正好也是我需要的。
↓↓
update TableName set time_cha =(floor((to_seconds(now())-to_seconds(create_time))/60)) where create_time is not null
第二:需要对String 类型的数据强制转换为int类型。
因为直接搜的是强制转换为int类型,所以当时搜出来了 cast(name as int), convert(name,int) 死活不对。
后来才发现类型得是:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
不知道这铺天盖地的 int 到底是怎么编译通过的.....╭(╯^╰)╮
↓ ↓
update TableName set XXX where cast(time_cha as signed) >60;
- Mysql强制类型转换
- 关于强制类型转换:强制类型转换
- 类型转换&&类型强制转换
- 类型转换&&类型强制转换
- 类型转换(向下强制)
- c++强制类型转换
- 强制类型转换
- 关于强制类型转换
- c++强制转换类型
- C++ 强制类型转换
- c++强制类型转换
- 强制类型转换
- C++强制类型转换
- java强制类型转换
- c++强制类型转换
- javascript 强制类型转换
- 谈谈强制类型转换
- C++强制类型转换
- 并查集,battles over cities,路径压缩,优化与封装,无向图连通性
- 详解Paint的setShader(Shader shader)
- Unity log 自定义输出
- ***POJ 3617 Best Cow Line【牛排队】
- Cython 的学习
- Mysql强制类型转换
- 记录使用requests模块实现登陆csdn
- JAVA线程状态
- web压力测试工具介绍
- 文章标题
- Linux ( Kali ) 下锐捷登录时多ip问题
- Git版本管理器的使用与学习
- shell运算符
- 理解JAVA动态代理