suchen
HeimDatenbankMySQL-Tutorialatitit.判断时间重叠方法总结javac++c#.netjsphp

atitit.判断时间重叠方法总结 java c++ c#.net js php 1. 判断时间重叠具体流程思路 1 2. 重叠算法 实际上就是日期集合跟个时间集合的的交集(乘法算法) 1 3. 代码--- 1 4. 最终生成的sql 3 5. 参考 5 1. 判断时间重叠具体流程思路 先判断日期重叠,在判断时

atitit.判断时间重叠方法总结 java c++ c#.net js php

 

1. 判断时间重叠具体流程思路 1

2. 重叠算法 实际上就是日期集合跟个时间集合的的交集(乘法算法) 1

3. 代码--- 1

4. 最终生成的sql 3

5. 参考 5

 

1. 判断时间重叠具体流程思路

先判断日期重叠,在判断时间区段重叠。

每个区段都有内包含,外包含,左包含,右包括...所以,or表达式需要4*4=16个..每个or 表达式包括4个and表达式( 两个日期表达式,两个时间范围表达式)

最终的最终的的表达式需要16*4=64个,,比较长的了..

 

2. 重叠算法 实际上就是日期集合跟个时间集合的的交集(乘法算法)

在程序设计里有。。。。。

回答

那实际上就是交、并、差。
所谓加,实际上就是求两个集合的并集
减,就是求两个集合的差集
乘,就是求两个集合的并集
它们都是从逻辑的运算推出来的

另外更正一下:乘是求两个集合的交集。

 

 

3. 代码---

private void ini() {

String db_start_fld = "start_time";

String db_end_fld = "end_time";



String db_include_exp = "db_start_fld>=ui_start and db_end_fld<=ui_end ";

String db_outclude_exp = "db_start_fld<=ui_start and db_end_fld>=ui_end ";

String db_leftinclude_exp = "db_end_fld>=ui_start and db_end_fld <=ui_end ";

String db_ritinclude_exp = "db_start_fld>=ui_start and db_end_fld<=ui_end ";









List<String> dateExpList = new ArrayList<String>() {

{



add(expandFunc(db_include_exp));

add(expandFunc(db_outclude_exp));

add(expandFunc(db_leftinclude_exp));

add(expandFunc(db_ritinclude_exp));



}



private String expandFunc(String db_include_exp) {

String db_start_fld_Datefunc = " CONVERT(varchar(100), db_start_fld, 23)";

String db_end_fld_Datefunc = " CONVERT(varchar(100), db_end_fld, 23)";

return db_include_exp.replaceAll("db_start_fld",

db_start_fld_Datefunc).replaceAll("db_end_fld",

db_end_fld_Datefunc);

}

};





List<String> timeExpList = new ArrayList<String>() {

{

add(expandFunc(db_include_exp));

add(expandFunc(db_outclude_exp));

add(expandFunc(db_leftinclude_exp));

add(expandFunc(db_ritinclude_exp));



}



private String expandFunc(String db_include_exp) {

String db_start_fld_Timefunc = " CONVERT(varchar(100), db_start_fld, 8)";

String db_end_fld_Timefunc = " CONVERT(varchar(100), db_end_fld, 8)";

return db_include_exp.replaceAll("db_start_fld",

db_start_fld_Timefunc).replaceAll("db_end_fld",

db_end_fld_Timefunc);

}

};



List<String> finalList= new ArrayList<String>() {{



for (String dateExp : dateExpList) {

for (String timeExp : timeExpList) {

this.add(dateExp+" and "+timeExp.replaceAll("db_start_fld", db_start_fld).replaceAll("db_end_fld", db_end_fld));

}

}



}};



String sql=new ArrayList(){

private String exec( ) {

String exp_final=" 1=1 ";

for (String exp : finalList) {

//if(exp_final.length()==0)

exp_final=exp_final + " or ( "+exp +" ) ";

}

return exp_final;



}}.exec( );

System.out.println(sql);





}

4. 最终生成的sql


SELECT *

FROM tab

WHERE 1=1

OR (CONVERT(varchar(100), db_start_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)<=ui_end

AND CONVERT(varchar(100), start_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8)<=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)<=ui_end

AND CONVERT(varchar(100), start_time, 8)<=ui_start

AND CONVERT(varchar(100), end_time, 8)>=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)<=ui_end

AND CONVERT(varchar(100), end_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8) <=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)<=ui_end

AND CONVERT(varchar(100), start_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8)<=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)<=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)>=ui_end

AND CONVERT(varchar(100), start_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8)<=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)<=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)>=ui_end

AND CONVERT(varchar(100), start_time, 8)<=ui_start

AND CONVERT(varchar(100), end_time, 8)>=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)<=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)>=ui_end

AND CONVERT(varchar(100), end_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8) <=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)<=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)>=ui_end

AND CONVERT(varchar(100), start_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8)<=ui_end)

OR (CONVERT(varchar(100), db_end_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23) <=ui_end

AND CONVERT(varchar(100), start_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8)<=ui_end)

OR (CONVERT(varchar(100), db_end_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23) <=ui_end

AND CONVERT(varchar(100), start_time, 8)<=ui_start

AND CONVERT(varchar(100), end_time, 8)>=ui_end)

OR (CONVERT(varchar(100), db_end_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23) <=ui_end

AND CONVERT(varchar(100), end_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8) <=ui_end)

OR (CONVERT(varchar(100), db_end_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23) <=ui_end

AND CONVERT(varchar(100), start_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8)<=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)<=ui_end

AND CONVERT(varchar(100), start_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8)<=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)<=ui_end

AND CONVERT(varchar(100), start_time, 8)<=ui_start

AND CONVERT(varchar(100), end_time, 8)>=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)<=ui_end

AND CONVERT(varchar(100), end_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8) <=ui_end)

OR (CONVERT(varchar(100), db_start_fld, 23)>=ui_start

AND CONVERT(varchar(100), db_end_fld, 23)<=ui_end

AND CONVERT(varchar(100), start_time, 8)>=ui_start

AND CONVERT(varchar(100), end_time, 8)<=ui_end)

 

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
MySQL: Wesentliche Fähigkeiten für Anfänger zu meisternMySQL: Wesentliche Fähigkeiten für Anfänger zu meisternApr 18, 2025 am 12:24 AM

MySQL ist für Anfänger geeignet, um Datenbankfähigkeiten zu erlernen. 1. Installieren Sie MySQL Server- und Client -Tools. 2. Verstehen Sie grundlegende SQL -Abfragen, wie z. B. SELECT. 3.. Stammdatenoperationen: Daten erstellen, Daten einfügen, aktualisieren und löschen. 4. Lernen Sie fortgeschrittene Fähigkeiten: Unterabfragen und Fensterfunktionen. 5. Debugging und Optimierung: Überprüfen Sie die Syntax, verwenden Sie Indizes, vermeiden Sie die Auswahl*und verwenden Sie die Grenze.

MySQL: Strukturierte Daten und relationale DatenbankenMySQL: Strukturierte Daten und relationale DatenbankenApr 18, 2025 am 12:22 AM

MySQL verwaltet strukturierte Daten effizient durch Tabellenstruktur und SQL-Abfrage und implementiert Inter-Tisch-Beziehungen durch Fremdschlüssel. 1. Definieren Sie beim Erstellen einer Tabelle das Datenformat und das Typ. 2. Verwenden Sie fremde Schlüssel, um Beziehungen zwischen Tabellen aufzubauen. 3.. Verbessern Sie die Leistung durch Indexierung und Abfrageoptimierung. 4. regelmäßig Sicherung und Überwachung von Datenbanken, um die Datensicherheit und die Leistungsoptimierung der Daten zu gewährleisten.

MySQL: Schlüsselmerkmale und Funktionen erklärtMySQL: Schlüsselmerkmale und Funktionen erklärtApr 18, 2025 am 12:17 AM

MySQL ist ein Open Source Relational Database Management -System, das in der Webentwicklung häufig verwendet wird. Zu den wichtigsten Funktionen gehören: 1. unterstützt mehrere Speichermotoren wie InnoDB und MyISAM, geeignet für verschiedene Szenarien; 2. Bietet Master-Slave-Replikationsfunktionen, um Lastausgleich und Datensicherung zu erleichtern. 3.. Verbessern Sie die Abfrageeffizienz durch Abfrageoptimierung und Index.

Der Zweck von SQL: Interaktion mit MySQL -DatenbankenDer Zweck von SQL: Interaktion mit MySQL -DatenbankenApr 18, 2025 am 12:12 AM

SQL wird verwendet, um mit der MySQL -Datenbank zu interagieren, um die Datenzusatz, Löschung, Änderung, Inspektion und Datenbankdesign zu realisieren. 1) SQL führt Datenoperationen über SELECT, INSERT, INTERATE, UPDATE, Löschen von Anweisungen durch. 2) Verwenden Sie Anweisungen für Datenbankdesign und -verwaltung create, ändern, fallen. 3) Komplexe Abfragen und Datenanalysen werden über SQL implementiert, um die Effizienz der Geschäftsentscheidungen zu verbessern.

MySQL für Anfänger: Erste Schritte mit der DatenbankverwaltungMySQL für Anfänger: Erste Schritte mit der DatenbankverwaltungApr 18, 2025 am 12:10 AM

Zu den grundlegenden Operationen von MySQL gehört das Erstellen von Datenbanken, Tabellen und die Verwendung von SQL zur Durchführung von CRUD -Operationen für Daten. 1. Erstellen Sie eine Datenbank: createdatabasemy_first_db; 2. Erstellen Sie eine Tabelle: CreateTableBooks (IDINGAUTO_INCRECTIONPRIMARYKEY, Titelvarchar (100) Notnull, AuthorVarchar (100) Notnull, veröffentlicht_yearint); 3.. Daten einfügen: InsertIntoBooks (Titel, Autor, veröffentlicht_year) va

MySQLs Rolle: Datenbanken in WebanwendungenMySQLs Rolle: Datenbanken in WebanwendungenApr 17, 2025 am 12:23 AM

Die Hauptaufgabe von MySQL in Webanwendungen besteht darin, Daten zu speichern und zu verwalten. 1.Mysql verarbeitet effizient Benutzerinformationen, Produktkataloge, Transaktionsunterlagen und andere Daten. 2. Durch die SQL -Abfrage können Entwickler Informationen aus der Datenbank extrahieren, um dynamische Inhalte zu generieren. 3.Mysql arbeitet basierend auf dem Client-Server-Modell, um eine akzeptable Abfragegeschwindigkeit sicherzustellen.

MySQL: Erstellen Sie Ihre erste DatenbankMySQL: Erstellen Sie Ihre erste DatenbankApr 17, 2025 am 12:22 AM

Zu den Schritten zum Erstellen einer MySQL -Datenbank gehören: 1. Erstellen einer Datenbank und Tabelle, 2. Daten einfügen, und 3. Durchführen von Abfragen. Verwenden Sie zunächst die Anweisungen für erstellte und creatEtable, um die Datenbank und Tabelle zu erstellen, und verwenden Sie dann die Anweisung InsertInto, um die Daten einzulegen, und verwenden Sie schließlich die Auswahlanweisung, um die Daten abzufragen.

MySQL: Ein anfängerfreundlicher Ansatz zur DatenspeicherungMySQL: Ein anfängerfreundlicher Ansatz zur DatenspeicherungApr 17, 2025 am 12:21 AM

MySQL ist für Anfänger geeignet, da es einfach zu bedienen und leistungsfähig ist. 1.Mysql ist eine relationale Datenbank und verwendet SQL für CRUD -Operationen. 2. Es ist einfach zu installieren und erfordert, dass das Stammbenutzerkennwort konfiguriert wird. 3.. Verwenden Sie Einfügen, Aktualisieren, Löschen und Wählen Sie, um Datenvorgänge auszuführen. 4. OrderBy, wo und Join kann für komplexe Abfragen verwendet werden. 5. Debugging erfordert die Überprüfung der Syntax und verwenden Sie Erklärungen zur Analyse der Abfrage. 6. Die Optimierungsvorschläge umfassen die Verwendung von Indizes, die Auswahl des richtigen Datentyps und der guten Programmiergewohnheiten.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools