SQL用DataDiff查询的怪现象而引发的思考(2)

sql语句常用函数笔记 sql语句常见函数(只记录部分常用函数) 字符函数(只记下一些常用的) 1. CONCAT 拼接字符 例:SELECT CONCAT('hello',username) FROM `user`; 输出结果为: helloguest1 helloguest2 helloguest3 CONCAT可以将结果与指定字符拼接可以指定任意个变量CONCAT(str1,str2,str3,…) 2.LENGTH 获取字节长度 SELECT LENGTH('hello,小星'); ​ 运行结果为:12,因为一个中 阅读详情

在脑子里老是记得当初写SQL的时候,总是有人提醒对于主键的条件要写在前面,至于为什么现在总是记不清楚了。但是SQL中where 条件的执行顺序跟主键以及索引有很大的关系。

把上片中的表a 加上主键:

alter table

add constraint pk_a_id primary key (id)

 

然后在运行上篇中出错的例句:

select * from a where id in (1,3) and datediff(day, convert(datetime,val),getdate()) < 0

 

竟然没有错误,返回了id=1的记录。看来,如果表中有主键的话,主键会被优先执行的。所以此时id =2的记录根本就不在考虑范围之内。

 

 

假设我们不加主键,而是加上一个unique的index:

 

alter table a
drop constraint pk_a_id

 

create unique index u_a_id on a(id)

 

然后再运行上面的句子:

select * from a where   id in (1,3) and datediff(day, convert(datetime,val),getdate()) < 0

 

出现了错误:

Msg 241, Level 16, State 1, Line 1
Conversion failed when converting datetime from character string.

 

 

可见index, 并不能改变where 条件的执行顺序,但是主键是可以的。

 

【Oracle专栏】函数中SQL拼接参数 报错处理 最近同事反馈了一个很奇怪的问题,即有一个函数,入参是当前年月,主要作用是通过SQL语句将不合规的数据插入到指定表中,插入数据时带上入参的年月参数。虽然插入成功,但是看到 data_issue字段并非 希望插入的“2025-02”,说明拼接有问题,需要加单引号,否则 oracle会认为是 2025-2 =2023,因此单引号不可缺。此时,发现改为sql拼接参数后,成功插入ok。由于报错提示29行,不是group by语句,于是摘出SQL检查。此时查询发现,第一段插入已成功,第二段插入报错。 阅读详情

相关推荐

Sonatype nexus3 数据迁移及升级3.71+(迁移到H2数据库)

nexus3旧版本OrientDB升级H2,及整体迁移nexus3数据到其它服务器。

葫芦娃 5550

日期函数DATEDIFF() 计算日期之差

函数返回两个日期之间的时间。

weixin_43737594的博客 1万+

谷粒商城 - 个人笔记(集群部署篇一)

电商后台管理系统+电商系统,掌握微服务的全套方案。该系统有商品服务、仓储服务、订单服务、购物车服务、检索服务、认证中心服务、网关服务、用户服务、秒杀服务、第三方服务。使用SpringBoot+SpringCloud并配套SpringCloud Alibaba系列,引入全套微服务治理方案:Nacos注册中心/配置中心、Feign远程调用、Gateway网关、Redisson缓存、基于ElasticSearch7全文检索、异步编排与线程池、RabbitMQ柔性事务方案、Redisson分布式锁、分布式信号量等。

知行 4002

mysql中DATADIFF()函数使用

[html] view plain copy 用过mssql的朋友应该了解datediff函数了,在mssql中,该函数的第一个参数是开始日期,第二个是结束日期,开始日期应该在结束日期之前,这样算出来的结果是大于或等于0的一个数,反之是一个负数,但在MySQL中就完全相反,

AinUser的博客 7473

避坑指南:STM32CubeMX安装后,你的第一个工程为什么中文全是乱码?

本文详细解析了STM32CubeMX安装后中文乱码问题的根源及解决方案。从诊断乱码现象到分析编码冲突背景,提供了新项目UTF-8化、旧项目GBK兼容及版本降级等多种实用方案,帮助开发者彻底解决这一常见问题。

weixin_30699955的博客 474

硬件工程师笔记——三极管Multisim电路仿真实验汇总

NPN型三极管:由N型半导体、P型半导体和N型半导体组成,即NPN结构。 PNP型三极管:由P型半导体、N型半导体和P型半导体组成,即PNP结构。 三极管的工作原理基于电流的控制和放大,其核心是基区对电流的控制作用。 将三极管等效为两个串联的二极管进行等效分析

XU157303764的博客 2635

SQL用DataDiff查询的怪现象而引发的思考。。

今天又看到新加坡的同事发过来的一段SQL语句,还是老问题,时间对比直接用大于小于号。叹了声气后,手动给改成datediff了,可是一运行出错,错误提示如下:Msg 241, Level 16, State 1, Line 1Conversion failed when converting datetime from character string. 为了说明方便,这里就简化一个

kucool的专栏 1308

基于C#的工业机器人上位机控制程序开发(搭配松下PLC+MC协议)

基于C#的工业机器人上位机控制程序开发,核心是上位机与松下PLC的MC协议通信和机器人控制的安全逻辑,而不是单纯的界面编写。在工控现场,程序的稳定性和安全性永远是第一位的——比如解耦通信逻辑、处理跨线程问题、添加安全互锁、记录操作日志,这些都是保证产线稳定运行的关键。新手在学习时,建议先跟着步骤搭建好环境,跑通基础的PLC通信和机器人控制功能,再逐步尝试进阶优化。数据模型化、通信封装化、逻辑模块化、UI解耦化。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1239

解决数据库中日期跟前端查询出来的日期存在时差的问题

解决数据库中日期跟前端查询出来的日期存在时差的问题 如图数据库中的数据的creat_time是:2019-04-22 14:38:48 ![image-20190422152558646](/Users/yedeguo/Library/Application Support/typora-user-images/image-20190422152558646.png) 但是基于swagger查询出...

qq1300375795的博客 1534

Unity零基础到进阶 | Unity 探针系统深度解析:光照探针、反射探针与相关技术

在 Unity 渲染管线中,探针(Probe) 是一类通过预计算或实时采样来捕捉空间光照信息的核心组件。它们弥补了传统静态光照贴图和实时光源各自的局限性,是实现高质量、高性能全局光照效果的关键工具。 本文将系统介绍光照探针(Light Probe)和反射探针(Reflection Probe)的作用与用法,分析二者之间的协同关系,并延伸介绍自适应探针体积(APV)、光照探针代理体(LPPV)、探针体积等进阶技术。

努力前行,总会成为自己心中的那道光 1万+

手把手教你ensp仿真搭建校园网(含防火墙及无线网络)系列(一)校园网核心交换机配置

本系列博客将带你从零开始,使用 华为 eNSP(Enterprise Network Simulation Platform) 仿真搭建一个完整的校园网络,涵盖 核心层、汇聚层、接入层、防火墙安全策略、无线AC+AP组网 等实战场景。无论你是网络初学者还是希望深化实战经验的工程师,都能通过本教程掌握企业级网络的规划、配置与排错技巧。

echo的博客 3795

moment 计算两个时间的差值diff方法

两个日期/时间的时差: moment(endTime).diff(moment(startTime), 'years') moment(endTime).diff(moment(startTime), 'months') moment(endTime).diff(moment(startTime), 'days') // 开始时间和结束时间的时间差,以“天”为单位;endTime和...

qq_26642611的博客 1万+

基于FPGA的相控阵雷达波束控制系统设计(2)

也就是在计算波控码时0,按2.8125递增,取遍-90

qq_43416206的博客 1812

SQL-datadiff()应用

二、语法:datediff(datepart,startdate,enddate)是后面日期减去前面的日期(enddate-startdate)1、datepart,规定应在日期的哪一部分计算差额。一、作用:返回两个日期之间的时间间隔。日期 缩写。查询近30天活跃用户数。

weixin_42060331的博客 515

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SQL DATEDIFF函数

SQL DATEDIF函数计算并返回两个日期值之间的差值。返回的值是一个整数。您可以通过DATEDIFF改变datepart参数来计算各种日历计算。

寒冰屋的专栏 3万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SQL SERVER(21)组合查询

除连接查询外,SQL中还有一种组合查询,这种查询使用UNION关键字将多个SELECT语句组合起来,将多个SELECT语句的查询结果显示到一个结果集中。组合查询与连接查询不同的是,前者将多个表的查询结果,竖着组合,而后者是将查询结果横着连接。 1 使用组合查询 从stu_info表中查询所属院系为“计算机系”,或者年龄大于30岁的学生的信息。 SELECT * FROM stu_info WHERE depart='计算机系' UNION SELECT * FROM stu_info WH...

复行数十步 1050

sql 取一个月日期去掉周末的所有日期_LeetCode:SQL

一、简单175.组合两个表编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:select FirstName, LastName, City, State from Person p left join Address a on p.PersonId = a.PersonId;176.第二高薪水编写一个 SQL 查询,获取E...

weixin_39704314的博客 590

LEECODE_SQL语句练习_记录

Tianwen55的博客 55

sql —— 函数及关键字

sql关键字

2301_76145947的博客 285

Mysql SQL语句查询今天、昨天、N天内、第N天的数据

注意:因为对索引列使用函数会导致索引失效,如果查询时需要使用到索引,请使用MySQL DATE_SUB()函数 查询当天的所有数据 SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=0 查询昨天的所有数据 SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=-1 ...

allen19840920的博客 507

SQL 学习

SQL 学习

Raymone Shaw的博客 781

Error number: 20598 The row was not found at the Subscriber when applying the replicated command.

今天测试Replication遇到下面的错误: The row was not found at the Subscriber when applying the replicatedcommand.(Source: MSSQLServer, Error number: 20598) if @@trancount > 0 rollback tr...

weixin_33721344的博客 402

黑马程序员---sql server 2005 的查询语句

.............................Windows Phone 7手机开发   .Net培训.................................     如果是一个没有客户端就只能通过Sql 用户登录; 若没有安装客户端 在Sql 外围应用配置器——》服务和链接的外围服务器——》远程连接 ,选择tcp/ip协议 。sql server Brower 启

dsp_daiyujie的专栏 444

Transact -SQL 语句

Transact- SQL概述了解 SQL 结构化查询语言 Transact-SQL语言是SQL 的增强版本 种类 数据 定义 操纵 控制 常用 事务管理 流程控制 附加的语言元素 常量与变量常量 常量指具体的值,不需要声明 变量分类 全局 局部 局部变量声明 格式 DECLARE {@local_variablep[AS]data_type |@cursor_variable_nameCURS

格物致知,知行合一。 5229
上一篇: SQL用DataDiff查询的怪现象而引发的思考。。
下一篇: 聊天室里的滚动条自动向下滚动
kucool
博客等级 码龄21年 16粉丝 64原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值