一缕风尘绕指柔 2022-02-25 15:34 采纳率: 100%
浏览 55
已结题

数据库时间条件查询问题

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

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

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

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

  • 写回答

4条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-02-25 15:52
    关注
    1. 不同数据库的函数使用有区别
    2. 不同数据库的数据类型隐式转换有区别

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 已采纳回答 3月4日
  • 创建了问题 2月25日

悬赏问题

  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作