我需要运行一个查询,查找昨天凌晨2点到凌晨2点之间发生的所有登录日期(dd/mm/yyyy)和时间(hh.mm).数据库中的登录时间格式为mm-dd-yyyy hh.mm.ss.
我曾尝试多个select和between查询,要么在错误的一天或时间跨度外返回的数据.
我需要从表中找到人们的生日……从今天起接下来的 7 天。我有一个查询 .. SELECT * FROMtable WHEREdobLIKE BETWEEN %-08-17 AND %-08-24但它返回日期未在数据库中提交的记录..我的意思是条目是 0000-00-00 我已经将生日以日期格式存储在表中。请帮我找到错误。
嗨,我想根据位于另一个表的两列之间的值从表中获取数据,下面的 SQL 应该解释我的目的:
SELECT * FROM TABLE 1 WHERE 1.FIELD1 BETWEEN
(SELECT 2.RANGE_FROM FROM TABLE 2) AND (SELECT 2.RANGE_TO FROM TABLE 2)
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为我收到错误:
Error: SQL0811N The result of a scalar fullselect, SELECT INTO statement, or VALUES INTO statement is more than one row. SQLSTATE=21000
(State:21000, Native Code: FFFFFCD5)
Run Code Online (Sandbox Code Playgroud)
这很明显,因为两个子查询都返回多行。所以我想编写一个SQL来执行上述功能而不会出错。该平台是IBM DB2.
编辑:
好的,我想我通过使用条件连接 2 个表解决了这个问题:
SELECT * FROM TABLE1 A, TABLE2 B WHERE A.FIELD1 BETWEEN B.RANGE_FROM AND B.RANGE_TO
Run Code Online (Sandbox Code Playgroud)
不过还需要更多的测试。
当我试图将年龄放入括号时,我得到以下错误.如果我写下面的内容,那么查询就会顺利进行,但是当然,大括号主要是"未知".
SELECT
ID,
CASE age
WHEN 40 THEN 'YOUNG'
WHEN 50 THEN 'OLD'
ELSE 'Not known'
END as brackets
FROM table1
Run Code Online (Sandbox Code Playgroud)
如果我将查询更改为更合适,如下所示,我会收到有关主题的错误.我想知道这是什么线索.
SELECT
ID,
CASE age
WHEN BETWEEN 18 AND 40 THEN 'young'
WHEN BETWEEN 41 AND 99 THEN 'old'
ELSE 'Not known'
END as brackets
FROM table1
Run Code Online (Sandbox Code Playgroud) 我有一个样本表,其中包含帮助台呼叫中心数据.在此表中存储了呼叫日志和相关内容.该表有call_no一date_logged列和一列.
我试图使用一个案例,我可以获得给定时间段内的总呼叫数.
下面是示例代码.
SELECT
COUNT(CASE WHEN CALLS.DATE_LOGGED BETWEEN '2018/04/06' AND '2018/04/07'
THEN calls.CALL_NO END) AS "CALLS LOGGED YESTERDAY"
FROM
LOGGED_CALLS CALLS
Run Code Online (Sandbox Code Playgroud)
这给了我系统中的调用总数,我不想在这种情况之外使用where子句.
让我们假设它再次是4月7日,我希望从前一天开始记录呼叫
我试图在SQL Server中的同一个SQL语句中使用Between和OR子句,每次我得到空结果时,任何人都对此有所了解?我的原始SQL形成如下:
SELECT *
FROM opportunity AS oppt
WHERE oppt.Location='O/S'
OR oppt.Location='Overseas'
AND oppt.OPEN_DATE BETWEEN '2014-01-01 00:00:00.000'
AND '2010-01-01 00:00:00.000'
Run Code Online (Sandbox Code Playgroud) 我在PHP中的SQL任务$查询不能处理具有不同数量的值(例如.XXX和XXXX => 700和1100,800以及1200和900和1300:
//Applying values from <form>:
$pirmas = $_POST['ieskoti'] - 200;
$antras = $_POST['ieskoti'] + 200;
// So when $_POST['ieskoti'] is 800, 900, 1000 and 1100, this task is not working:
$query = 'SELECT * FROM prekes WHERE prek_kaina BETWEEN "'. $pirmas .'" AND "'. $antras .'";';
$result = mysql_query($query);
Run Code Online (Sandbox Code Playgroud)
使用其他值可以完美地工作,因为BETWEEN运算符使用具有相同数量的值:500和900,1000和1400等...
有任何想法吗?
我需要一个正则表达式,它需要一个最小和最大数字来确定有效输入,我希望最大值和最小值是动态的.
我一直在尝试使用此链接完成此操作 /sf/answers/943151681/
但无法让它发挥作用.所以有人可以让我知道如何做到这一点.
------WiktorStribiżew请求更新---------
假设我想制作一个html5输入框,而我希望它只能接收从100到1999的数字
我会像这样的正则表达式是什么样的?正则表达式本身,应该与应该使用它的代码有关,因为我将在android,iOS和网页上使用它
索引是否有助于BETWEENSQL Server 中的子句?如果我有20000行的表,查询是:
select *
from employee
where empid between 10001 and 20000
Run Code Online (Sandbox Code Playgroud) 我有两张桌子.我想计算星期一到星期五的天数,仅在Hire_dt和日历月结束之间.
表A
Hire_DT Id
09/26/2018 1
Run Code Online (Sandbox Code Playgroud)
TableCalendar:
Date WorkDay(M-F) EOM WorkDay
09/26/2018 Wednesday 9/30/2018 1
09/27/2018 Thursday 09/30/2018 1
09/28/2018 Friday 09/30/2018 1
09/29/2018 Saturday 09/30/2018 0
09/30/2018 Sunday 09/30/2018 0
Run Code Online (Sandbox Code Playgroud)
预期成绩
Hire_dt WorkDaysEndMonth WorkDaysEndMonth --counting hire_dt
09/26/2018 2 3
Run Code Online (Sandbox Code Playgroud)