`
surfingForRest
  • 浏览: 146243 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

取生日的SQL的一点感想

阅读更多
背景:修改别人作品的BUG。

这是个取生日开始日期与结束日期“月日”之间的工作。

未修改之前的代码如下:
--开始日期与结束日期同年          
 AND (((EXTRACT(MONTH FROM BIRTHDATE) > EXTRACT(MONTH FROM TO_DATE('" | &startDate | "','YYYY-MM-DD'))      
 AND EXTRACT(MONTH FROM BIRTHDATE) < EXTRACT(MONTH FROM TO_DATE('" | &endDate | "','YYYY-MM-DD')))          
                                                                                                            
 OR  (EXTRACT(MONTH FROM BIRTHDATE) = EXTRACT(MONTH FROM TO_DATE('" | &startDate | "','YYYY-MM-DD'))        
 AND EXTRACT(DAY FROM BIRTHDATE) > EXTRACT(DAY FROM TO_DATE('" | &startDate | "','YYYY-MM-DD')))            
                                                                                                            
 OR  (EXTRACT(MONTH FROM BIRTHDATE) = EXTRACT(MONTH FROM TO_DATE('" | &endDate | "','YYYY-MM-DD'))          
 AND EXTRACT(DAY FROM BIRTHDATE) < EXTRACT(DAY FROM TO_DATE('" | &endDate | "','YYYY-MM-DD')))))            
                                                                                                            
--开始日期与结束日期不同年(代码省略)  
--对于2.29生日的人,又重新UNION ALL了一堆SQL(代码省略)  


修改后的代码如下:

--开始日期与结束日期同年  
 AND (TO_CHAR(BIRTHDATE, 'MM-DD') BETWEEN                           
 TO_CHAR(TO_DATE('" | &startDate | "','YYYY-MM-DD'), 'MM-DD') AND   
 TO_CHAR(TO_DATE('" | &endDate | "','YYYY-MM-DD'), 'MM-DD')) 
       
--开始日期与结束日期不同年
AND ((TO_CHAR(BIRTHDATE, 'MM-DD') BETWEEN                                         
TO_CHAR(TO_DATE('" | &startDate | "','YYYY-MM-DD'), 'MM-DD') AND '12-31') OR      
(TO_CHAR(BIRTHDATE, 'MM-DD') BETWEEN '01-01' AND                                  
TO_CHAR(TO_DATE('" | &endDate | "','YYYY-MM-DD'), 'MM-DD')))                      

--对于生日2.29的人以上两句完全可以搞定



这是个从EXTRACT()函数到TO_CHAR()函数的过程,记此文以祭奠俺开始对TO_CHAR()函数的无知。








分享到:
评论

相关推荐

    获取生日的Sql

    能够获取会员生日的sql语句,能够获取会员生日的sql语句,能够获取会员生日的sql语句,

    sql server 生日提醒

    ### SQL Server 生日提醒知识点详解 #### 一、SQL Server 生日提醒背景介绍 在许多应用场景中,我们可能需要基于用户的生日数据来触发特定的提醒或通知服务,比如发送生日祝福邮件、短信等。在这样的场景下,如何...

    生日查询软件--c#sql数据库

    标题中的“生日查询软件--c#sql数据库”指的是一个基于C#编程语言开发的应用程序,该程序设计用于从SQL数据库中检索和管理生日信息。在IT领域,这种类型的软件可以帮助用户方便地跟踪和管理个人或组织成员的生日,...

    mysql只取年月日的SQL写法.sql

    mysql只取年月日的SQL写法

    易语言SQL基本语句模块

    易语言SQL基本语句模块源码,SQL基本语句模块,SQL_查询,SQL_添加,SQL_更新,SQL_删除,SQL_删除表,SQL_清空表,SQL_取记录数,SQL_取平均值,SQL_取最小值,SQL_取最大值,SQL_取首记录字段值,SQL_取尾记录字段值,SQL_取总计...

    SQL 语法 SQL 总结 SQL教程

    SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...

    sql server 导入超大SQL脚本文件

    SQL Server 导入超大 SQL 脚本文件 SQL Server 是一种关系型数据库管理系统,广泛应用于各种行业。然而,在实际应用中,我们经常会遇到导入超大 SQL 脚本文件的问题。本文将介绍如何使用 osql 工具来导入超大 SQL ...

    SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示

    SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动...

    易语言取SQL服务器列表

    易语言取SQL服务器列表源码,取SQL服务器列表

    sqlserver自动生成sql语句工具sqlserver转oracle

    在IT行业中,数据库管理系统是核心组成部分,SQL Server和Oracle分别是微软和甲骨文公司推出的两款广泛应用的关系型数据库系统。在企业级应用中,有时需要在不同的数据库系统间进行数据迁移或兼容性处理,这就涉及到...

    sql或c#取时间PNG格式

    sql,c#,取时间,PNG格式 sql,c#,取时间,PNG格式 sql,c#,取时间,PNG格式 sql,c#,取时间,PNG格式 sql,c#,取时间,PNG格式 sql,c#,取时间,PNG格式 sql,c#,取时间,PNG格式 sql,c#,取时间,PNG格式

    SQL.Cookbook(中文高清PDF)

    SQL.Cookbook 《SQL Cookbook中文版》中的SQL 是计算机世界的语言,在用关系数据库开发报表时,将数据放入数据库以及从数据库中取出来,都需要SQL 的知识。...《SQL Cookbook中文版》就是要帮助大家认识到这一点。

    SQLTracker,抓取sql语句的工具

    SQLTracker是一款专为数据库操作监控设计的工具,它在IT领域中主要用于跟踪和记录SQL语句的执行情况。SQL(Structured Query Language)是用于管理关系数据库的编程语言,包括查询、更新、插入和删除数据等操作。SQL...

    SQLMonitor oracle跟踪SQL工具

    《SQLMonitor:Oracle数据库SQL跟踪与分析利器》 在IT行业中,数据库的高效管理与优化是至关重要的。针对Oracle数据库,有一款名为SQLMonitor的工具,它专为跟踪和监控SQL语句而设计,帮助开发者和DBA们找出程序...

    kettle链接SQL server驱动 sqljdbc

    在Kettle中配置SQL Server数据库连接时,我们需要依赖特定的数据库驱动,这就是SQL JDBC驱动。 SQL JDBC驱动是微软提供的Java Database Connectivity (JDBC) 驱动,使得Java应用程序能够与SQL Server进行交互。有两...

    sqlserver4.2 jar包

    Java Runtime Environments (JRE) 的版本支持和相关联的 JDBC API 版本取决于内附的 JAR 文件,具体如下: • Sqljdbc41.jar 需要 JRE 7 并支持 JDBC 4.1 API • Sqljdbc42.jar 需要 JRE 8 并支持 JDBC 4.2 API ...

    mysql转化成sql server sql转化成mysql工具

    在IT行业中,数据库管理系统(DBMS)的选择往往取决于项目需求,技术栈以及团队熟悉度。MySQL和SQL Server是两种非常流行的DBMS,分别由Oracle公司和Microsoft公司开发。当需要在两者之间进行数据迁移时,就需要用到...

    SQL Server:查询以查找当前一周的即将到来的生日

    在SQL Server中,查询当前一周的即将到来的生日是一项常见的任务,尤其对于管理客户数据库或员工信息的系统来说。这个查询通常涉及到日期运算和条件筛选,以便找出那些在接下来7天内过生日的人。以下是如何使用SQL ...

    Microsoft SQL Server Native Client (SQL Native Client)

    Microsoft SQL Server Native Client (SQL Native Client) 是一个同时包含 SQL OLE DB 访问接口和 SQL ODBC 驱动程序的动态链接库 (DLL)。它对使用本机代码 API(ODBC、OLE DB 和 ADO)连接到 Microsoft SQL Server ...

    Oracle Sql语句转换成Mysql Sql语句

    在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...

Global site tag (gtag.js) - Google Analytics