我有一个名为"OrderH"的订单表头.在此表中有一个名为"OrderDate"的列.我正在尝试检索日期在一定范围内的订单.我认为我可以使用"between"关键字完成此操作,但我没有任何运气.这是我一直在研究的SQL:
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)
我究竟做错了什么?
例如,如果我这样做:
SELECT * FROM Users WHERE UserId BETWEEN 100 AND 1
Run Code Online (Sandbox Code Playgroud)
会有什么结果?
编辑:对不起,你说得对,我应该指定.我不想知道返回的确切行数,我只是想知道它是否会返回介于1和100之间的行,或者它是否会将行返回min(UserId)到1和100之间max(UserId).
这是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)
我试图找出生成WHERE查询的最有效方法.我之前问过另一个问题,这个问题很相似,但我会在这个问题上做到正确.
给定一个数字范围的集合,即1-1000,1500-1600创建一个mysql非常简单,其中条件选择这些值之间的记录.
即,你会这样做:
WHERE (lft BETWEEN 1 and 1000) OR (lft BETWEEN 1500-1600).但是,如果您想要合并NOT BETWEEN,该怎么办?
例如,如果您定义了几个规则,例如......
如何合并这些规则以便有效地生成WHERE条件.我希望WHERE能够剖析它ALLOW BETWEEN 1 - 1000以便在其中创造一个空白.这样它就会成为1-24和51-1000.因为DENY规则是在第一个规则之后定义的,所以它会"覆盖"以前的规则.
另一个例子,说你有
然后我想生成一个允许我这样做的WHERE条件:
WHERE (lft BETWEEN 5 and 9) OR (lft BETWEEN 45 and 60).
allow 10-50,然后,DENY必须完全被该范围消耗,即34-38.或者,完全消耗以前的规则.9-51.这是因为范围实际上 …我有两列的表(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)
但这没有用,我一直在谷歌搜索这几个小时没有明确的答案,任何帮助将不胜感激,谢谢提前.
我想找时间冲突,但它没有给我正确的结果以下记录.我想为时间段返回冲突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) 表格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.
我正在使用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"中.它是否因为这种处理而发生?
感谢您提前宝贵的时间.
我有一份完成培训课程的人员名单.我需要选择所有以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) 我是新来的。有一个奇怪的问题。我的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)