ms-sql 如何查询开始时间与结束时间之间的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ms-sql 如何查询开始时间与结束时间之间的数据?相关的知识,希望对你有一定的参考价值。

帮忙查询开始日期 2016-10-1 结束日期 2016-11-1 之间数据(含当天)?
ID 开始日期 结束日期 备注
1 2016-09-18 16:30:30.000 2016-09-30 23:30:30.000 完全不在时间跨度内
2 2016-11-18 16:30:30.000 2016-11-30 23:30:30.000 完全不在时间跨度内
3 2016-09-20 08:00:00.000 2016-10-25 23:30:30.000 后面在时间跨度内
4 2016-10-11 11:26:50.000 2016-10-29 23:30:30.000 前后均在时间跨度内
5 2016-10-12 08:00:00.000 2016-11-28 23:30:30.000 前面在时间跨度内

查询结果显示的内容为:
ID 开始日期 结束日期 备注
3 2016-09-20 08:00:00.000 2016-10-25 23:30:30.000 后面在时间跨度内
4 2016-10-11 11:26:50.000 2016-10-29 23:30:30.000 前后均在时间跨度内
5 2016-10-12 08:00:00.000 2016-11-28 23:30:30.000 前面在时间跨度内
有劳各位大神了。

参考技术A declare @datetime1 varchar(10),@datetime2 varchar(10);
set @datetime1=convert(char(10),getdate(),120) --显示结束时间,格式:2013-05-26
set @datetime2=left(@datetime1,8)+'01' --显示开始时间,格式:2013-05-01

select * from #table_1 where startTime>@datetime2 and entTime<@datetime1追问

谢谢了。但是不行啊。

Postgresql 查询以展开每个客户的开始日期和结束日期之间的所有日期

【中文标题】Postgresql 查询以展开每个客户的开始日期和结束日期之间的所有日期【英文标题】:Postgres sql query to explode all the dates between start and end date for each customer 【发布时间】:2021-12-08 16:27:51 【问题描述】:

我有一个包含以下列的表格:customerIDstartdateenddate。例如:

CustomerID     startdate(mm/dd/yyyy)       Enddate(mm/dd/yyyy)
c1             10-15-2020                  10-18-2020
c2             02-20-2021                  02-25-2021
c3             12-01-2021                  12-08-2021

如何编写 SQL 查询来分别展开每个客户的开始日期和结束日期之间的所有日期?

所以预期的输出是:

CustomerID        exploedcalendardate
c1                10-15-2020
c1                10-16-2020
c1                10-17-2020
c1                10-18-2020
c2                02-20-2021
c2                02-21-2021
c2                02-22-2021
c2                02-23-2021
c2                02-24-2021
c2                02-25-2021
c3                12-01-2021
c3                12-02-2021
c3                12-03-2021
c3                12-04-2021
c3                12-05-2021
c3                12-06-2021
c3                12-07-2021
c3                12-08-2021

【问题讨论】:

Redshift 还是 Postgres?它们是两种截然不同的产品。 这能回答你的问题吗? How to expand each row of a table into a variable number of rows in Postgresql 【参考方案1】:

您可以使用 generate_series() 函数来实现这一点。这里举个例子

select customerID, dd::date AS exploedcalendardate 
from customer C
JOIN LATERAL generate_series(C.startdate, c.enddate, '1 day'::interval) dd ON true

测试查询here

【讨论】:

以上是关于ms-sql 如何查询开始时间与结束时间之间的数据?的主要内容,如果未能解决你的问题,请参考以下文章

sql查询开始时间和结束时间之间的数据?

学习笔记之ACCESS和MS-SQL数据库与ZBLOG系统如何选择搭配?

学习笔记之ACCESS和MS-SQL数据库与ZBLOG系统如何选择搭配?

CakePHP 查找两个日期之间查询的条件

SQL 'overlaps' 仅获取开始和结束之间的日期(不包括开始和结束日期)

如何将 MS-SQL Server SELECT 查询转换/迁移到 Oracle 和 MySQL?