前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >日常踩坑系列(一)

日常踩坑系列(一)

作者头像
用户5166330
发布2019-04-16 15:01:20
1.5K0
发布2019-04-16 15:01:20
举报
文章被收录于专栏:帅哥哥写代码帅哥哥写代码
1.数据库坑

公司做政府项目,啥子数据库都用。sql server,db2,mysql,oracle。 进入正题 使用group by 分组。 sql server数据库实操

sql server.png 这儿的错误提示异常非常明显,就是说select后面除了聚合函数包裹的列以外,其余列必须出现在了gruop by之后方可被select 正确的实例如下

sql server correct.png db2数据库实操

db2.png An expression starting with "ID" specified in a SELECT clause, HAVING clause, or ORDER BY clause is not specified in the GROUP BY clause or it is in a SELECT clause, HAVING clause, or ORDER BY clause with a column function and no GROUP BY clause is specified.. SQLCODE=-119, SQLSTATE=42803, DRIVER=3.61.75 错误日志和sql server一个意思,就是除了聚合函数包裹的列以外,其余列必须出现在了gruop by之后方可被select 正确实例如下

db2 correct.png mysql数据库实操

mysql.png 可以发现mysql明显没有遵守这个原则。 使用order by 这个我就不截图了,主要说一哈group by 和order by连用时,order by 后面的字段必须出现在group by后面,mysql 又完美的错过了此规范。 这些问题都不大,大家严格遵守规范就不会出现问题。这里提一哈也算是个坑吧。

2.ZonedDateTime 与 LocalDateTime问题

一个是带时区信息的时间,一个不带时区信息的时间。可能会导致时间错乱问题。 这里涉及到一个时间协议ISO 8601 国际标准化组织的国际标准ISO 8601是日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》。目前最新为第三版ISO8601:2004,第一版为ISO8601:1988,第二版为ISO8601:2000。 小时、分和秒都用2位数表示,对UTC时间最后加一个大写字母Z,其他时区用实际时间加时差表示。如UTC时间下午2点30分5秒表示为14:30:05Z或143005Z,当时的北京时间表示为22:30:05+08:00或223005+0800,也可以简化成223005+08。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.06.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.数据库坑
  • 2.ZonedDateTime 与 LocalDateTime问题
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档