使用 Oracle SQL 选择生日在给定范围内的员工

2024-04-08

为了选择两个月之间的生日,其中 FROMDATE 和 TODATE 是准备好的语句中的一些参数,我想了如下:

select
  p.id as person_id,
   ...
   ...
  where e.active = 1
        and extract(month from TODATE) >= extract(month from e.dateOfBirth)
        and extract(month from e.dateOfBirth) >= extract(month from FROMDATE)
        order by extract(month from e.dateOfBirth) DESC,
              extract(day from e.dateOfBirth) DESC

如何改进以适应数天的工作?


在 Oracle 中搜索日期范围的方法不止一种。对于您的场景,我建议您将所有涉及日期的月份和日期元素转换为数字。

select
  p.id as person_id,
   ...
   ...
  where e.active = 1
  and to_number (to_char( e.dateOfBirth, 'MMDD')) 
      between to_number (to_char( FROMDATE, 'MMDD'))
              and to_number (to_char( TODATE, 'MMDD')) 
  order by extract(month from e.dateOfBirth) DESC,
          extract(day from e.dateOfBirth) DESC

这不会使用任何索引e.dateOfBirth柱子。这是否重要取决于您想要运行查询的频率。


@AdeelAnsari 评论:

“我不喜欢 to_char 谓词,以便利用 指数”

什么指数?正常索引dateOfBirth不会有任何用处,因为索引条目将以年份元素开头。所以它不能帮助你找到出生日期的所有记录any12 月 23 日。

基于函数的索引 - 或者在 11g 中,带有索引的虚拟列(基本上是同一件事) - 是对日期列的各个部分进行索引的唯一方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Oracle SQL 选择生日在给定范围内的员工 的相关文章

  • 用户表中发生“数据操作操作在此视图上不合法”

    当我尝试在属于我正在使用的用户的表上插入值时 会发生此错误 SQL Error ORA 01732 data manipulation operation not legal on this view Cause Action 在人们所说的
  • 如何解读这些时间戳?

    我正在尝试解析一些 xml 文件中写入的时间戳 大多数时间时间戳是这样的2009 07 22 07 00但有时我发现它们就像2009 07 22Z or 2009 07 22z 请帮助我如何解释这些 Z 以及如何解析它们 我认为这些 z 或
  • 如何计算 MySQL 中日期的平均值?

    如何在 MySQL 中计算日期之间的平均值 我对时间值 小时和分钟更感兴趣 在桌子上有 date one datetime date two datetime 执行如下查询 SELECT AVG date one date two FROM
  • 通过选择插入时,如何在插入表之前检查重复项

    通过选择插入时 如何在插入表之前检查重复项 insert into table1 select col1 col2 from table2 我需要检查 table1 是否已经有 table1 col1 value table2 col1 v
  • 显示 Presto 中所有模式的表

    急速 SHOW SCHEMAS 返回所有模式 SHOW TABLES FROM foo 返回 foo 模式的所有表 有没有一种简单的方法可以从 Presto 中的所有模式返回表 您可以使用select table schema table
  • 带有多表查询的 SQL Join 版本的 Djangoviews.py

    需要一些有关 Django 版本的 SQL 多表查询的帮助 该查询使用 3 个表来检索餐厅名称 地址Restaurants table和美食类型来自Cuisinetypes table 所有这些都基于通过 URL 传递的菜品名称 菜品 ID
  • ora-00972 标识符太长 oracle 10g

    我收到标题中提到的错误 我使用的是 36 个字符的 ID 此错误仅在我的 asp net web 表单中的 sqldatasource 中抛出 当我执行更新时这不是问题Oracle sql developer 我怎样才能解决这个问题 Ora
  • 我可以停止 CakePHP 获取查询的所有行吗?

    我正在使用 CakePHP 和 modelName gt find 调用选择相当多的行 可能是数百行 通常 在 PHP MySQL 中这当然不会成为问题 因为您在 while 循环中获取它们 但是 CakePHP 将所有行加载到一个数组中
  • 计算两个日期时间之间经过的工作时间

    给定两个日期时间 计算他们之间的工作时间的最佳方法是什么 考虑到工作时间为周一 8 5 30 周二至周五 8 30 5 30 并且任何一天都可能是公共假期 这是我的努力 看起来效率低得可怕 但就迭代次数而言 并且 IsWorkingDay
  • 如何根据 Postgres 中的过滤条件更新深度嵌套的 JSON 对象?

    我有一张桌子mapping transform带有 JSONB 列content json包含类似的东西 meta mapping src up dest down 我想添加一个新的 JSON 条目 rule names some name
  • 甚至阻止超级管理员/dba 删除/更新表?

    我需要确保一些关键任务表永远不会被删除或编辑 唯一可能的操作是从中读取数据 并且 dba 可以添加更多行 就是这样 现在为了增加安全性 我想阻止甚至 dba 都能够删除 更改记录 所以基本上没有人可以删除或更改记录 也没有超级管理员 这些表
  • mySQL中外键必须是索引吗?

    我刚刚自己创建了第一个 mySQL 表 除了使用 Joomla Wordpress 等 我是 MS SQL 开发人员多年 但通常我可以轻松地在 MS SQL 中创建外键 但我遇到了困难或这里缺乏知识 这是我的表格 users user id
  • Oracle 中的 MD5 (DBMS_OBFUSCATION_TOOLKIT.MD5)

    我正在尝试编写一个函数 从我到处收集的位中获取 MD5 哈希值 我想获得哈希的小写十六进制表示 到目前为止我有这个 CREATE OR REPLACE FUNCTION MD5 CADENA IN VARCHAR2 RETURN DBMS
  • 设置 datetime-local 的默认时间值

    我使用这个 html 标签作为日期时间选择器
  • 为每一表行创建一个 json

    我想从表中的数据创建 json 表格看起来像这样 code D5ABX0 MKT536 WAEX44 我正在使用 FOR JSON PATH 这很好 SELECT code FROM feature FOR JSON PATH 但是这个查询
  • 如何使用 pyodbc 和 MS-Access 在 Python Cursor.execute 中查看真实的 SQL 查询

    我在 Python 中使用以下代码 使用 pyodbc 作为 MS Access 基础 cursor execute select a from tbl where b and c x y 没关系 但是出于维护目的 我需要知道发送到数据库的
  • 如何向多个涉及外键依赖的表插入数据(MySQL)

    我正在寻找将数据插入多个 MySQL 表的最佳实践方法 其中某些列是外键依赖项 这是一个例子 Table contacts contact id first name last name prof id zip code 联系人 表有主键
  • 如何列出引用 SQL Server 中给定表的所有外键?

    我需要删除 SQL Server 数据库中高度引用的表 如何获取删除表时需要删除的所有外键约束的列表 SQL 答案比在 Management Studio 的 GUI 中单击有关更好 不知道为什么没有人建议但我使用sp fkeys查询给定表
  • 消息传递功能创建 Sql 查询和数据库视图

    鉴于以下情况 我需要能够获取给定用户参与的所有线程的列表 首先按最新消息排序 仅显示最新消息 每个线程 1 条消息 这是上面的 SQL 查询 SELECT Message MessageId Message CreateDate Messa
  • 为什么我们需要带有聚合函数的 GROUP BY?

    我看到一个例子 其中有一个员工列表 表 及其各自的月薪 我对工资进行了汇总 并在输出中看到了完全相同的表格 这很奇怪 这是必须做的 我们必须找出本月我们支付多少员工工资 为此 我们需要在数据库中对他们的工资金额进行求和 如下所示 SELEC

随机推荐

  • Docker&Celery - 错误:Pidfile (celerybeat.pid) 已存在

    应用程序包括 姜戈 雷迪斯 芹菜 码头工人 Postgres 在将项目合并到 docker 之前 一切都运行顺利且正常 但是一旦将其移入容器 就开始出现问题 起初它开始得很好 但过了一会儿我确实收到了以下错误 celery beat 1 E
  • Spring Boot 的新遗迹

    最近 我们将一个 tomcat spring 应用程序转换为 spring boot 除了新遗物之外 一切都运行良好 有没有一种方法可以轻松地使用 Spring Boot 项目配置新的遗迹 我不想硬编码 new relic 代理 jar 路
  • 使用 VBA 确定进程 ID

    情况 我有一个宏 需要将击键按顺序发送到两个 Firefox 窗口 不幸的是 两个窗口具有相同的标题 为了处理这个问题 我激活了该窗口 发送了我的击键 然后使用 F6 加载第二个窗口的 URL 然后发送击键 然后使用 F6 将其返回到原始页
  • X86: `movsxd rdx,edx`指令是什么意思?

    我一直在玩intel mpx 发现它添加了某些我无法理解的指令 例如 英特尔格式 movsxd rdx edx I found this https stackoverflow com questions 33268906 how does
  • 为什么没有将 `std::initializer_list` 定义为文字类型?

    这是这个问题的后续 声明 constexprinitializer list 对象是否合法 https stackoverflow com questions 16063123 is it legal to declare a conste
  • Julia 泛型函数类型参数

    我定义了一个函数如下 function approx pi n tot Float64 0 0 for i in 1 n x rand y rand if x 2 y 2 lt 1 tot 1 end end tot n 4 end pri
  • 3D 哪个更快? Perlin 噪声还是 Simplex 噪声?

    好吧 网上有很多 Perlin 噪声和 Simplex 噪声之间的比较 但我真的找不到一个对三个维度进行简单处理时间比较的地方 这是我最感兴趣的 我读过那个流行的PDF http webstaff itn liu se stegu simp
  • DateTime 和 DateTime2 之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 SQL Server datetime2 与 datetime https stackoverflow com questions 1334143 sql server datetime2 vs da
  • 检查可选 Bool 的值

    当我想检查可选布尔值是否为真时 这样做不起作用 var boolean Bool false if boolean 它会导致此错误 可选类型 IvalueBool 不能用作布尔值 测试 nil 反而 我不想检查是否为零 我想检查返回的值是否
  • 如何使用 html5 canvas 将图像覆盖在杯子上

    我是 HTML5 画布新手 我有一个杯子的图像 我将其渲染在画布上 这是杯子的图片 现在我正在尝试渲染另一张图像 我的照片为正常矩形尺寸 上传该图像的设计区域 我怎样才能渲染这个看起来像杯子上的图像的图像 我想得到这样的最终图像 我使用ca
  • 使WCF服务可以通过Internet访问

    我做了一个WCF服务 我希望它的客户端能够从任何地方访问它 我怎样才能做到这一点 细节 我希望它托管在 Windows 中 过程 而不是站点 我正在使用 TCP 绑定 我对网络托管等几乎一无所知 最好不要使用 IIS 我在网上找到了很多建议
  • 为什么要向对象的属性添加单引号[重复]

    这个问题在这里已经有答案了 对于javascript对象 对于它的属性 我通常不会为其添加单引号 我记得如果我在对象的属性中添加单引号 它就会变成 JSON 吗 我对吗 请看这段代码 两个代码都会输出对象的值 请解释一下我是否需要向对象的属
  • 如何在 Spark 中读取和解析 BSON 转储文件?

    我在 HDFS 中有几个 BZ2 Mongo DB BSON 转储需要分析 我正在使用 Spark 2 0 1 和 Scala 2 11 8 目前我正在使用 Spark Shell 我尝试通过创建 RDD 来使用 mongo spark 连
  • Android 照片背景橡皮擦需要帮助 - 不擦除位图,而只是绘制黑线

    我正在开发 1 个应用程序 因为我需要删除位图 因为我所做的是 代码可以工作 但只是画黑线 Override protected void onDraw Canvas canvas canvas drawBitmap mBitmap 0 0
  • Interface Builder 中的 WKWebView

    XCode 6 beta 中的 IB 对象模板似乎仍在创建旧式对象 iOS 的 UIWebView 和 OSX 的 WebView 希望 Apple 能够针对现代 WebKit 更新它们 但在那之前 在 Interface Builder
  • RAP:如何访问 ViewPart 中的对象

    我如何访问Object of a View从其他地方 以下代码只是为了勾画我想要做的事情 public class View extends ViewPart public static final String ID view priva
  • 是否可以使用 Apache POI XSSF 设置活动范围?

    我正在使用 Apache POI XSSF 来读取和写入 Excel 表 我知道我可以使用以下方法在工作表上设置活动单元格Sheet setActiveCell CellAddress address 但是 我想将其设置为工作表上包含多个单
  • 如何为多张图片添加不同的 IPTC 关键字?

    我有一个包含数千张图像的文件夹 每个图像都需要添加一个唯一的关键字列表 我还有一个表格 其中的字段显示文件路径以及每个图像所需关键字的相关列表 例如 一条记录可能需要标签 ORASH 调查站点代码 人员 1 横断面 A 上游 站点布局 而下
  • 如何查看 SVN 中文件的版本树,显示从分支到主干的合并?

    我是 SVN 新手 但已经使用 Clearcase 多年 我的问题是我对一个分支进行了一些更改 我已使用 TortoiseSVN 重新集成分支 功能将其合并回主干 现在 当我查看版本树时 我没有看到从分支尖端到树干尖端渲染的任何边缘 这是我
  • 使用 Oracle SQL 选择生日在给定范围内的员工

    为了选择两个月之间的生日 其中 FROMDATE 和 TODATE 是准备好的语句中的一些参数 我想了如下 select p id as person id where e active 1 and extract month from T