标签: between

SQL - 按日期范围查询

我有一个名为"OrderH"的订单表头.在此表中有一个名为"OrderDate"的列.我正在尝试检索日期在一定范围内的订单.我认为我可以使用"between"关键字完成此操作,但我没有任何运气.这是我一直在研究的S​​QL:

select 
    * 
from
    OrderH h
where
        h.OrderDate between '2009-06-16' and '2009-06-01'
order by
    h.OrderDate desc
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

t-sql syntax between

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

在SQL中,BETWEEN语句是否必须是BETWEEN最低和最高的形式?

例如,如果我这样做:

SELECT * FROM Users WHERE UserId BETWEEN 100 AND 1
Run Code Online (Sandbox Code Playgroud)

会有什么结果?

编辑:对不起,你说得对,我应该指定.我不想知道返回的确切行数,我只是想知道它是否会返回介于1和100之间的行,或者它是否会将行返回min(UserId)到1和100之间max(UserId).

sql sql-server select between

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

如何在一个sql语句中对同一列或不同列使用'BETWEEN'两次condetion

这是sql语句只给出一个值

SELECT count(pn1) FROM pledges
WHERE date1
BETWEEN '2011-05-05' AND '2011-06-06'
Run Code Online (Sandbox Code Playgroud)

我想在同一列或同一个表中的不同列中多次使用"之间"

例如,我想在date1中多次使用它,或者我想将它用于具有不同范围的date1和date2

注意:我正在使用java DB Derpy(JDBC-Derby)

sql jdbc derby between javadb

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

解析数字范围

我试图找出生成WHERE查询的最有效方法.我之前问过另一个问题,这个问题很相似,但我会在这个问题上做到正确.

给定一个数字范围的集合,即1-1000,1500-1600创建一个mysql非常简单,其中条件选择这些值之间的记录.

即,你会这样做:

WHERE (lft BETWEEN 1 and 1000) OR (lft BETWEEN 1500-1600).但是,如果您想要合并NOT BETWEEN,该怎么办?

例如,如果您定义了几个规则,例如......

  • 允许在1 - 1000之间
  • 允许在1500 - 1600之间
  • 允许在1250 - 1300之间
  • 拒绝在25-50之间

如何合并这些规则以便有效地生成WHERE条件.我希望WHERE能够剖析它ALLOW BETWEEN 1 - 1000以便在其中创造一个空白.这样它就会成为1-2451-1000.因为DENY规则是在第一个规则之后定义的,所以它会"覆盖"以前的规则.

另一个例子,说你有

  • 允许在5 - 15之间
  • DENY BETWEEN 10 - 50
  • 允许45-60之间

然后我想生成一个允许我这样做的WHERE条件:

WHERE (lft BETWEEN 5 and 9) OR (lft BETWEEN 45 and 60).

备注(编辑)

  • 此外,允许的最大范围是1 - 5600000.(这将是'地球')即.允许地球上的一切.
  • 数字范围实际上是NESTED SET MODEL中的LEFT值.这些不是唯一键.你可以在我之前提到的这个问题中解读为什么我要这样做. /sf/ask/421438741/
  • 关于我的数字范围的可能重要说明我可能不应该使用我所做的示例示例,但关于数字范围的性质的一个重要注意事项是,范围实际上应该总是完全消耗或被先前规则消耗.例如,我使用上面的例子,10-50允许,并拒绝45-60.这实际上不会发生在我的数据集中.实际上allow 10-50,然后,DENY必须完全被该范围消耗,即34-38.或者,完全消耗以前的规则.9-51.这是因为范围实际上 …

php mysql range between

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

日期之间的SQL

我有两列的表(startdate和enddate),我有两个提交日期(2012-02-29和2012-03-30)我试图获取startdate(2012-02-29)和enddate之间的数据( 2012-03-30)

我试过了

 i.startdate between '2012-02-29' and i.enddate '2012-03-30'
Run Code Online (Sandbox Code Playgroud)

但这没有用,我一直在谷歌搜索这几个小时没有明确的答案,任何帮助将不胜感激,谢谢提前.

php sql date between

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

如何在SQL查询中找到时隙冲突

我想找时间冲突,但它没有给我正确的结果以下记录.我想为时间段返回冲突true - "t1.starttime to t2.endtime"因为此时隙与"t2.starttime和t2.endtime"冲突,因为7到12时间覆盖了8到11.30的某个时间.

t1.StartTime     t1.EndTime       t2.StartTime     t2.EndTime
---------------- ---------------- ---------------- ----------------
07:00:00.0000000 12:00:00.0000000 08:00:00.0000000 11:30:00.0000000

我执行下面的查询,但它没有给我结果.

SELECT 
  count(1) 
FROM 
  t1 INNER JOIN t2 ON

  CAST(t1.StartTime as TIME)  
  BETWEEN CAST(t2.StartTime as TIME) 
  AND CAST(t2.EndTime as TIME) OR CAST(t1.EndTime as TIME)  
  BETWEEN CAST(t2.StartTime as TIME) 
  AND CAST(t2.EndTime as TIME)
Run Code Online (Sandbox Code Playgroud)

sql sql-server between sql-server-2008

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

如何将日期转换为mysql日期格式

表格1

id         int        pk
searchdate datetime
amount     float
Run Code Online (Sandbox Code Playgroud)

表1的数据

id   searchdate   amount
1    2014-02-05    100
2    2014-02-02    245
3    2014-02-11    344
Run Code Online (Sandbox Code Playgroud)

我想要data between 2014-02-01 to 2014-02-10,但我想要的datetime picker"01-02-2014" (dd-mm-yyyy format).请帮我在查询之间创建MySQL.

java mysql between

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

Mysql之间的查询无法正常工作

我正在使用mysql.我想在两个日期之间显示记录.我在网上搜索,发现mysql的日期格式是yyyy/mm/dd.所以我写的查询如下,

select 
    * 
from tbl_reservation 
where 
    current_date between '2014-03-28' and '2014-03-26';
Run Code Online (Sandbox Code Playgroud)

但是,我不知道它为什么不起作用."col_date"具有DATE数据类型.我不是在里面存放时间.

让我告诉你我在后端做了些什么,

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date curr_date=new Date();
String compareDate=sdf.format(curr_date);
Run Code Online (Sandbox Code Playgroud)

我将此值存储在"col_date"中.它是否因为这种处理而发生?

感谢您提前宝贵的时间.

mysql date between

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

SQL选择间隔时间

我有一份完成培训课程的人员名单.我需要选择所有以5为间隔完成会话的人.因此,当一个人达到5,10,15,20个会话等时,列表只会拉行.

Name           Sessions
John Smith     5
Bill Smith     10
Joe Smith      15
Run Code Online (Sandbox Code Playgroud)

有没有快速的方法来做到这一点或我必须这样做

SELECT WHERE sessions = 5 OR 10 OR 15
Run Code Online (Sandbox Code Playgroud)

sql select between intervals

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

T-SQL和存储过程通过相同的查询给出不同的结果

我是新来的。有一个奇怪的问题。我的T-SQL查询返回69行,但是存储过程中的同一查询返回零结果。

在StackOverflow的其中一篇文章中,有人切换了EXEC语句中的参数/变量,但这对我也不起作用,如下所示。

除了BETWEEN,我还尝试了>=<=,但没有运气。

谢谢。

SELECT 
    T1.CustKey
FROM 
    INVOICEROWS T0 
INNER JOIN 
    INVOICE T1 ON T1.INVKEY = T0.INVKEY 
INNER JOIN 
    ITEMS T2 ON T2.PARTCODE = T0.PARTCODE  
INNER JOIN 
    CUSTOMERS T5 ON T5.CustKey = T1.CustKey
WHERE 
    T1.INVDATE BETWEEN '2018-03-26' AND '2018-03-26'
    AND ((T1.CustKey BETWEEN 'ABC' AND 'ABC') OR (T5.CustGroupKey = ''))
    AND ((T0.ItemKey BETWEEN 'PQR' AND 'STU') OR (T2.ItemGroupKey = ''))
Run Code Online (Sandbox Code Playgroud)

结果:69行具有相同的值“ ABC”(正确)

ALTER PROCEDURE [dbo].[PROC1]
    (@DATEFROM AS DATE,
     @DATETO AS DATE,
     @CUSTKEYFROM AS NVARCHAR,
     @CUSTKEYTO …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server stored-procedures between

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