数据库时间条件查询问题

最近在sqlserver中查询
需要查询一个特定时间内的数据量

sqlserver语句:SELECT * FROM 表 WHERE CONVERT(varchar(100), CreateTime, 23) ='2022-02-22'

而在mysql中语句:select * from 表 where create_time like '2022-01-13%'

我想知道为什么查询语句在不同数据库中执行不出来??是数据库的语句编写规则问题么

  1. 不同数据库的函数使用有区别
  2. 不同数据库的数据类型隐式转换有区别

第一个sql,是把一个datetime类型的数据转换成varchar(100)的类型,因此可以使用字符串进行匹配,单引号引起来的就是字符串,"CONVERT(varchar(100), CreateTime, 23) "这个函数的用法是sqlserver独有的。

第二个sql,你没说这个create_time是什么类型,但是右边的 '2022-01-13%'肯定是个字符串类型,此时mysql会对左边的字段进行隐式转换,也变成一个字符串,因此可以用like来进行匹配

因为时间我们通常是用字符串表示,转化成时间的时候用的函数各个数据库有点不一样

不同数据库字段类型不一样啊
函数也不一样

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632