最近在sqlserver中查询
需要查询一个特定时间内的数据量
sqlserver语句:SELECT * FROM 表 WHERE CONVERT(varchar(100), CreateTime, 23) ='2022-02-22'
而在mysql中语句:select * from 表 where create_time like '2022-01-13%'
我想知道为什么查询语句在不同数据库中执行不出来??是数据库的语句编写规则问题么
最近在sqlserver中查询
需要查询一个特定时间内的数据量
sqlserver语句:SELECT * FROM 表 WHERE CONVERT(varchar(100), CreateTime, 23) ='2022-02-22'
而在mysql中语句:select * from 表 where create_time like '2022-01-13%'
我想知道为什么查询语句在不同数据库中执行不出来??是数据库的语句编写规则问题么
第一个sql,是把一个datetime类型的数据转换成varchar(100)的类型,因此可以使用字符串进行匹配,单引号引起来的就是字符串,"CONVERT(varchar(100), CreateTime, 23) "这个函数的用法是sqlserver独有的。
第二个sql,你没说这个create_time是什么类型,但是右边的 '2022-01-13%'肯定是个字符串类型,此时mysql会对左边的字段进行隐式转换,也变成一个字符串,因此可以用like来进行匹配