[英]SQL query for date stored as key-value pair
I have table with following structure 我有以下结构的表
**JobData** - Table
---------------------------
id - Number
key - Varchar
value - Varchar
Data:
-----------------
ID value key
-----------------------------------------------
21212 2010-06-11T15:00:00 Job_End
21213 2008-12-01T23:59:00 Job_Start
21214 2008-12-01T23:59:00 Job_Start
21215 2018-06-11T15:00:00 Job_End
21216 2015-06-11T15:00:00 Job_End
If I want to retrieve records between two dates between 2000-06-01T:00:00, 2010-06-11T15:00:00, written the query as below. 如果要检索2000-06-01T:00:00、2010-06-11T15:00:00之间的两个日期之间的记录,请编写如下查询。
SELECT * FROM JobData jd
WHERE
jd.key IN ('Job_Start', 'Job_End')
AND (jd.key = 'Job_Start' and jd.value BETWEEN '2000-06-01T:00:00' AND '2010-06-11T15:00:00')
AND (jd.key = 'Job_End' and jd.value BETWEEN '2000-06-01T:00:00' AND '2010-06-11T15:00:00')
But I am getting 0 records , please someone let me know where I am missing. 但是我得到0条记录,请有人让我知道我在哪里。
Note: database is ORACLE 注意:数据库是ORACLE
Thanks. 谢谢。
Of course it's not going to work, because you're asking for a value to be both Job_Start
and Job_End
at the same time. 当然,这是行不通的,因为您要同时
Job_Start
和Job_End
的值。 If you really want to return all records between 2000-06-01T:00:00
and 2010-06-11T15:00:00
, then this should be correct: 如果您确实要返回
2000-06-01T:00:00
和2010-06-11T15:00:00
之间的所有记录,那么这应该是正确的:
SELECT *
FROM JobData jd
WHERE jd.key IN ('Job_Start', 'Job_End')
AND jd.value BETWEEN '2000-06-01T00:00:00' AND '2010-06-11T15:00:00'
Your query is incorrect. 您的查询不正确。
SELECT * FROM JobData jd
WHERE
jd.key IN ('Job_Start', 'Job_End')
AND (jd.key = 'Job_Start' and jd.value BETWEEN '2000-06-01T:00:00' AND '2010-06-11T15:00:00')
AND (jd.key = 'Job_End' and jd.value BETWEEN '2000-06-01T:00:00' AND '2010-06-11T15:00:00')
You should change it to 您应该将其更改为
SELECT * FROM JobData jd
WHERE
jd.key IN ('Job_Start', 'Job_End')
AND (TO_DATE(jd.value,'YYYY-MM-DDTHH24:MI:SS') BETWEEN TO_DATE('2000-06-01T00:00:00', 'YYYY-MM-DDTHH24:MI:SS') AND TO_DATE('2010-06-11T15:00:00', 'YYYY-MM-DDTHH24:MI:SS'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.