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检查。此时查询发现,第一段插入已成功,第二段插入报错。 阅读详情

相关推荐

uniapp: err = err.replace(this._UNI_INPUT_DIR_REG, ‘UNI_TypeError: err.replace is not a function问题修复

问题:uniapp的依赖包出现了问题,需要升级解决办法:升级uniapp依赖包,下载"semver"和”@dcloudio/uni-i18n“两个包,本地锁定postcss为7版本,就解决了。

py_boy的博客 1453

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

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

weixin_43737594的博客 1万+

4路QSFP28接口能玩出什么花样?基于璞致VU13P开发板的100G网络测试方案

本文详细介绍了基于璞致PZ-VU13P-KFB开发板构建100G网络测试方案的实战指南。该方案充分利用板载Xilinx Virtex UltraScale+ FPGA的强大算力与4路QSFP28接口,涵盖从光模块选型、Aurora协议配置、开源Corundum方案部署,到误码率测试及散热优化的全链路流程,为高速网络设备研发与验证提供了可靠的硬件平台。

cola5的博客 453

mysql中DATADIFF()函数使用

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

AinUser的博客 7473

Linux性能调优之CPU时间分布(亲和性、带宽、权重)配置

带宽权重亲和性进程级别Cgroup-v2服务级别systyemd我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ------赫尔曼·黑塞《德米安》

山河已无恙 1711

【Agent从入门到实践】40 容错优化:异常处理、重试机制、降级策略

各位小伙伴,咱们的多Agent框架一路优化到现在,决策快、执行效率高、资源用得省,看似啥都行,但只要一遇到网络波动、工具故障、数据异常调用web_search工具时网络超时,整个检索任务直接失败,写作Agent没数据可用向量库连接异常,向量检索直接崩掉,依赖检索结果的Agent全趴窝单个Agent执行出错,整个并行任务流程直接中断,前功尽弃高并发下部分工具调用失败,框架没有备用方案,只能返回任务失败说白了,咱们之前的框架只有正常执行逻辑,没有异常兜底逻辑。

人工智能AI技术 909

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

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

kucool的专栏 1308

在 SAP BTP ABAP Environment 里把 ATC 跑成流水线:定时检查 + 告警邮件,一次打通

摘要 本文介绍了如何在SAP BTP ABAP环境中实现ATC检查的自动化流程。通过将ATC与质量体系结合,构建从检查到通知的完整闭环:使用Custom Code Analysis Project定义检查范围,通过Application Jobs实现定时调度,利用标准CDS View读取结果,最后开发通知作业发送告警邮件。文章重点阐述了云环境下不同于On-Premise的实现思路,包括Test Variant设计、作业编排模板应用等关键环节,并提供了可落地的代码示例。这种自动化方案能有效解决人工检查的滞后性

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 167

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

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

qq1300375795的博客 1534

基于深度学习的行人车辆检测与计数系统(UI界面+YOLOv8/v7/v6/v5代码+训练数据集)

从YOLOv1到最新的YOLOv8,其网络结构、训练策略和损失函数不断优化,性能持续提升。image_path, _ = QFileDialog.getOpenFileName(self, "选择图片文件", "", "Image Files (*.jpg *.png *.jpeg *.bmp)")video_path, _ = QFileDialog.getOpenFileName(self, "选择视频文件", "", "Video Files (*.mp4 *.avi *.mov *.mkv)")

YOLO 225

【100%通过率】华为OD机试真题 Python 实现【字符串重新排列】【2022.11 Q4新题】

给定一个字符串s,s包括以空格分隔的若干个单词,请对s进行如下处理后输出: 1、单词内部调整:对每个单词字母重新按字典序排序 2、单词间顺序调整: 1)统计每个单词出现的次数,并按次数降序排列 2)次数相同,按单词长度升序排列 3)次数和单词长度均相同,按字典升序排列 请输出处理后的字符串,每个单词以一个空格分隔。

MISAYAONE的博客 7982

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

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

qq_26642611的博客 1万+

Uncaught ReferenceError: process is not defined

这个错误 Uncaught ReferenceError: process is not defined 通常出现在浏览器环境中,因为 process 是 Node.js 环境的内置对象,并不是浏览器原生支持的。因此,浏览器无法识别 process,导致该错误。在App.vue中加上以下代码就能够有效解决。

猿小白的博客 1740

SQL-datadiff()应用

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

weixin_42060331的博客 515

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SQL DATEDIFF函数

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

寒冰屋的专栏 3万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SQL SERVER(21)组合查询

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

复行数十步 1050

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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、付费专栏及课程。

余额充值