以上就是给各位分享在事件表和日期范围之间的T-SQL查询,同时本文还将给你拓展MySQL显示范围之间的所有日期、Mysql查询在时间戳的日期范围内非常慢、MySQL查询按日期范围分组?、MySQL:选
以上就是给各位分享在事件表和日期范围之间的T-SQL查询,同时本文还将给你拓展MySQL显示范围之间的所有日期、Mysql查询在时间戳的日期范围内非常慢、MySQL查询按日期范围分组?、MySQL:选择两个日期范围之间的所有数据等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:在事件表和日期范围之间的T-SQL查询
根据下表
id Title Date Metadata
------------------------------------
1 A 08/01/2010 M1
1 A 10/05/2010 M2
1 A 03/15/2011 M3
2 B 09/20/2010 M1
2 B 01/15/2011 M2
3 C 12/15/2010 M1
输入变量将是开始日期和结束日期。例如
@startDate = '07/01/2010'
@endDate = '06/30/2011'
如何生成以下输出?
Title Jul-10 Aug-10 Sep-10 Oct-10 Nov-10 Dec-10 Jan-11 Feb-11 Mar-11 Apr-11 May-11 Jun-11
-------------------------------------------------------------------------------------------
A Null M1 Null M2 Null Null Null Null M3 Null Null Null
B Null M1 Null Null Null Null M2 Null Null Null Null Null
C Null Null Null Null Null M1 Null Null Null Null Null Null
MySQL显示范围之间的所有日期
如何解决MySQL显示范围之间的所有日期?
您可以使用以下命令生成日期列表:
select a.Date, s.*
from
(
select curdate() + INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date
from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
) a
inner join schedule s
on a.Date >= s.fromDate
and a.Date <= s.toDate
参见带有演示的SQL Fiddle
解决方法
这个问题已经在这里有了答案 :
从日期范围生成天数
(29个答案)
7年前关闭。
我想显示a from
和to
MySQL中的日期之间的所有日期。
例如schedule
,具有from
和to
字段的表中的数据为:
from
日期是2013-3-13
和
to
日期2013-3-20
,
我想要的结果是:
2013-3-13
2013-3-14
2013-3-15
2013-3-16
2013-3-17
2013-3-18
2013-3-19
2013-3-20
如何仅使用MySQL查询来实现此目的(而不必使用存储过程,因为我对此并不熟悉)?
编辑:
尽管我仍然没有完全得到想要的结果,但是这里的答案很有帮助。在此示例中,它仅成功运行,但不输出任何内容。而且我不知道这是什么问题。
请帮忙。谢谢!
Mysql查询在时间戳的日期范围内非常慢
mysql表中有一个表,它有大约176万条记录并且还在增长.似乎记录越多,记录就越慢.下面运行一个简单的查询大约需要65秒. Date_run是一个时间戳字段.我想知道是否会让它运行得慢一些.我可以在选项文件中调整任何建议,以使这个宝贝更快?
select *
from stocktrack
where date(date_run) >= '2014-5-22'
and date(date_run) <= '2014-5-29'
> MysqL 5.6版
> Windows 8.1 64位
>英特尔酷睿i7-4770,3.40Ghz 12GB RAM
在函数中包装列(如DATE(),就像在查询中一样)会禁用MysqL优化器使用范围扫描操作.通过查询,即使索引可用,每次运行该查询时,MysqL都会对表中的每一行进行完整扫描.
为了提高性能,请在“裸”列上使用谓词,例如:
WHERE date_run >= '2014-5-22' AND date_run < '2014-5-29' + INTERVAL 1 DAY
(注意,当我们省略日期文字的时间部分时,MysqL假设时间组件为午夜’00:00:00′.我们知道每个日期时间/时间戳值,日期组件等于’2014-05-29’保证不到’2014-05-30’的午夜.)
MysqL需要适当的索引才能对此特定查询使用有效的范围扫描操作.适合此查询的最简单索引是:
... ON stocktrack (date_run)
(请注意,任何以date_run作为前导列的索引都是合适的.)
使用索引的范围扫描操作(通常)在大型集合上(通常)更有效(和更快),因为MysqL可以非常快速地从考虑中消除大量行.如果没有范围扫描操作,MysqL必须检查表中的每一行.
使用EXPLAIN来比较原始和修改之间的MySQL查询计划.
你问的问题……
“…对选项文件的任何调整……”
该问题的答案实际上取决于您使用的是哪个存储引擎(MyISAM或InnoDB).降压的最大好处来自于分配足够的缓冲区来保存内存中的数据库块,以减少I / O ……但这样做的代价是可以为运行的其他任何内存提供更少的内存,并且过度分配没有任何好处记忆.关于MysqL服务器调优的问题,除了查询性能之外,最好在dba.stackexchange.com上提出.
MySQL查询按日期范围分组?
我在MySQL中有一张表,该表显示了我每天记录的小时数。我正在尝试建立一个视图,该视图将允许我按块/天范围快速将数据分组。最简单的情况是每月一次,这并不难。我可以将日期选择为“%y-%m”,然后按该列分组。
前任:
select time_logged,date_format(start_date,'%Y-%m') AS `month_logged`
from work_log
group by month_logged
如果我按月分组,那很好。但是我的问题是,我需要从每月的13号到下个月的12号进行分组(例如:7月13日至8月12日,8月13日至9月12日,等等)。
有没有一种简单的方法可以在单个查询/视图中执行类似的操作?我似乎无法提出满足我的需求的查询,即使使用不同的日期字段组合也是如此。
MySQL:选择两个日期范围之间的所有数据
如何进行查询以选择两个日期之间的所有内容。
SELECT * FROM applications WHERE `datum` >='2013-11%' AND `datum`<='2014-04%';
我正在尝试做类似的事情,但那只返回一条记录是行不通的。
有人可以告诉我如何使它显示两个日期之间的所有内容。
Datum的类型为Datetime。
像2013-11-02 12:21:00
今天关于在事件表和日期范围之间的T-SQL查询的分享就到这里,希望大家有所收获,若想了解更多关于MySQL显示范围之间的所有日期、Mysql查询在时间戳的日期范围内非常慢、MySQL查询按日期范围分组?、MySQL:选择两个日期范围之间的所有数据等相关知识,可以在本站进行查询。
本文标签: