标签: between

选择BETWEEN列值

我正在尝试将BETWEEN用于列名而不是直接值,如下所示:

SELECT * FROM table WHERE column1 BETWEEN column2 AND column3;
Run Code Online (Sandbox Code Playgroud)

这会返回17行,但如果我写:

SELECT * FROM table WHERE (column1 <= column2 AND column1 >= column3) OR (column1 >= column2 AND column1 <= column3)
Run Code Online (Sandbox Code Playgroud)

我得到大约600行..在这两种情况下我只得到其中column1值实际上是中间值的行,但是第二种方法给了我更多的结果,所以第一种方法有问题.

我怀疑问题可能是使用BETWEEN子句与列名,而不是纯值,并且不知何故SQL正在将列名转换为实际值..奇怪,但有人可以启发我吗?谢谢

sql between

6
推荐指数
1
解决办法
3万
查看次数

MySQL复合索引和运算符BETWEEN

我对此查询有疑问:

SELECT * 
  FROM runs 
 WHERE (NOW() BETWEEN began_at 
                  AND finished_at)
Run Code Online (Sandbox Code Playgroud)

你认为为beginning_at和finished_at列创建复合索引是否有意义?或者只为starts_at创建索引是有意义的?

mysql sql indexing composite between

6
推荐指数
1
解决办法
1449
查看次数

在MySQL中的两个日期字符串之间获取数据

我一直在为我正在处理的项目记录Twitter数据,日期信息保存Thu, 14 Jul 2011 06:21:48 +0000在字符串字段中.

如何使用mySQL选择两个日期之间的数据?我可以获得大于值或小于值但不在值之间的数据.

例如,数据是:

Thu, 14 Jul 2011 06:21:48 +0000
Thu, 14 Jul 2011 12:18:21 +0000
Thu, 14 Jul 2011 18:48:00 +0000
Thu, 14 Jul 2011 23:48:02 +0000
Fri, 15 Jul 2011 06:48:10 +0000
Fri, 15 Jul 2011 12:48:00 +0000
Fri, 15 Jul 2011 18:43:32 +0000
Fri, 15 Jul 2011 23:44:08 +0000
Sat, 16 Jul 2011 06:47:08 +0000
Sat, 16 Jul 2011 12:46:49 +0000
Sat, 16 Jul 2011 18:45:41 +0000
Sat, 16 Jul 2011 …
Run Code Online (Sandbox Code Playgroud)

mysql sql date between

6
推荐指数
1
解决办法
7018
查看次数

两个日期之间的工作日火鸟

我需要计算 firebird base(版本 2.5)中两个日期之间的工作日

我有一个带有工作日(日期,天--空闲/工作)的表(table_date),我还有另一个带有start_date和end_date的表。例如,我们有两个日期 start_date=2015-04-04 和 end_date=2015-04-10 2015-04-05 和 2015-04-06 是免费的。这两个日期之间有 6 天,但 4 个工作日。

如何在基数中计算这个?

sql firebird date between

6
推荐指数
1
解决办法
7599
查看次数

如何生成两个日期之间的所有日期

如何在SQLite中检索"2015-10-02"到"2015-11-02"之间的所有日期?(字符串类型)结果如下:

'2015-10-03'
'2015-10-04'
'2015-10-05'
...
'2015-11-01'
Run Code Online (Sandbox Code Playgroud)

不是一个问题SELECT * FROM myTable where myDate <= '2015-01-01' AND myDate >= '2015-01-31'.这不是选择所有具有两天之间字段的现有记录.我只想检索两个日期之间的所有可能日期值.我想用它们按天查询记录数.

Date             Count
'2015-01-01'      19
'2015-01-02'      10
'2015-01-03'      0
...
Run Code Online (Sandbox Code Playgroud)

sqlite date between

6
推荐指数
1
解决办法
3725
查看次数

pyspark的“介于”功能:不包括时间戳的范围搜索

pyspark的“介于”功能不包含在时间戳输入中。

例如,如果我们想要两个日期之间的所有行,例如“ 2017-04-13”和“ 2017-04-14”,那么当日期作为字符串传递时,它将执行“排他”搜索。即,它省略了“ 2017-04-14 00:00:00”字段

但是,该文档似乎暗示它具有包容性(尽管在时间戳上没有引用)

当然,一种方法是从上限添加一个微秒,并将其传递给函数。但是,不是一个很好的解决方案。进行包含式搜索的任何干净方法?

例:

import pandas as pd
from pyspark.sql import functions as F
... sql_context creation ...
test_pd=pd.DataFrame([{"start":'2017-04-13 12:00:00', "value":1.0},{"start":'2017-04-14 00:00:00', "value":1.1}])
test_df = sql_context.createDataFrame(test_pd).withColumn("start", F.col("start").cast('timestamp'))
test_df.show()

+--------------------+-----+
|               start|value|
+--------------------+-----+
|2017-04-13 12:00:...|  1.0|
|2017-04-14 00:00:...|  1.1|
+--------------------+-----+

test_df.filter(F.col("start").between('2017-04-13','2017-04-14')).show()

+--------------------+-----+
|               start|value|
+--------------------+-----+
|2017-04-13 12:00:...|  1.0|
+--------------------+-----+
Run Code Online (Sandbox Code Playgroud)

python datetime range between pyspark

6
推荐指数
2
解决办法
1万
查看次数

MySQL在日期范围内汇总值

我有一个表,每行包含一个日期和一些任意的数值.我需要将此值与特定但动态的日期间隔相加.

SELECT VERSION();
5.0.51a-24+lenny5

CREATE TABLE IF NOT EXISTS `work_entries` (
  `entry_id` int(10) unsigned NOT NULL auto_increment,
  `employee_id` tinyint(3) unsigned NOT NULL,
  `work_date` date NOT NULL,
  `hour_count` tinyint(3) unsigned NOT NULL,
  PRIMARY KEY  (`entry_id`)
);

INSERT INTO `work_entries` (`entry_id`, `employee_id`, `work_date`, `hour_count`) VALUES
(1, 1, '2011-04-25', 2),
(2, 1, '2011-04-26', 3),
(3, 1, '2011-04-27', 1),
(4, 2, '2011-04-25', 2),
(5, 2, '2011-04-27', 4),
(6, 1, '2011-05-08', 2),
(7, 2, '2011-05-06', 8),
(8, 2, '2011-05-08', 9),
(9, 2, '2011-05-09', 1),
(10, …
Run Code Online (Sandbox Code Playgroud)

mysql date between

5
推荐指数
1
解决办法
8663
查看次数

SQL查询多个范围而不使用多个OR子句(嵌套LIKE,BETWEEN)

我通常必须查询一个非常大的表,查找每个变量有多个条件的多个变量.通常,需要在多个范围内查询变量.例如,我可能需要VAR_1的所有记录,其中VAR_1在200-300,350-400,450-500之间.

通常我会写如下,但有人告诉我使用IN()而不是多个OR会更有效率.

SELECT * FROM table
WHERE VAR_1 BETWEEN '200' AND '300' OR
      VAR_1 BETWEEN '350' AND '400' OR
      VAR_1 BETWEEN '450' AND '500'
Run Code Online (Sandbox Code Playgroud)

有没有办法压缩这些信息,并OR通过嵌套LIKEBETWEEN条款摆脱s IN()?有点像:

WHERE VAR_1 IN (BETWEEN '200' AND '300', BETWEEN '350' AND '400', BETWEEN '450' AND '500')

要么

WHERE VAR_1 IN ('[200-300]','[350-400]','[450-500]')

我尝试过这样的东西,但语法显然不正确.您可以指出我的任何想法或方向都很棒,对SQL来说仍然是新手.

sql performance between

5
推荐指数
1
解决办法
9703
查看次数

MySQL,拆分列数据并通过拆分数据获取结果

我有一个MySQL表数据,如下所示

+--------------------------+
| period                   |
+--------------------------+
| 2014-11-27 to 2014-11-28 |
| 2014-11-09 to 2014-11-09 |
| 2014-11-07 to 2014-11-07 |
| 2014-11-06 to 2014-11-06 |
| 2014-11-04 to 2014-11-04 |
| 2014-11-02 to 2014-11-02 |
| 2014-11-01 to 2014-11-02 |
| 2014-10-24 to 2014-10-24 |
| 2014-10-23 to 2014-10-24 |
| 2014-10-23 to 2014-10-24 |
| 2014-10-23 to 2014-10-23 |
| 2014-10-23 to 2014-10-23 |
| 2014-10-20 to 2014-10-20 |
| 2014-10-18 to 2014-10-18 |
| 2014-10-17 to 2014-10-17 …
Run Code Online (Sandbox Code Playgroud)

mysql sql select date between

5
推荐指数
1
解决办法
84
查看次数

JOOQ如何查询日期之间

我在我的项目中使用jooq,我需要在两个日期之间查询一些数据.

生成正确数据的sql查询是

select created_on from queue_token where created_on between '2015-07-16' and '2015-07-17' and token_queue_id=1;
Run Code Online (Sandbox Code Playgroud)

我写的等效jooq查询在下面,但没有给出所需的结果

 create.select().from(com.database.tables.QueueToken.QUEUE_TOKEN)
                   .where(com.database.tables.QueueToken.QUEUE_TOKEN.TOKEN_QUEUE_ID.equal(1))
                    .and(com.database.tables.QueueToken.QUEUE_TOKEN.CREATED_ON.between(new Timestamp(fromDate.getTime())).and(new Timestamp(toDate.getTime())))
                    .fetch();
Run Code Online (Sandbox Code Playgroud)

jooq查询生成结果,但只生成与fromDate完全匹配的记录.所以基本上它不适用于日期范围.

有人可以帮忙吗?

mysql sql date between jooq

5
推荐指数
1
解决办法
2117
查看次数

标签 统计

between ×10

sql ×7

date ×6

mysql ×5

composite ×1

datetime ×1

firebird ×1

indexing ×1

jooq ×1

performance ×1

pyspark ×1

python ×1

range ×1

select ×1

sqlite ×1