SQL查询以根据日期和时间检索结果

时间:2012-10-15 19:23:46

标签: sql oracle

我有以下数据表:

客户:

cus_id             cus_name
1                  philip
2                  david
3                  morris

订单:

 order_id   order_no    cus_id  ordr_status      order_ date_time
    1             123        1       d                      20121015 13:10:01
    2             456        1       c                      20121014 14:20:00
    3             789        2       d                      20121013 17:10:01
    4             767        2       c                      20121014 15:10:00

根据这些数据,如果订单日期时间介于20121014 14:00:00和20121015 14:00:00之间,并且订单状态为(d,c),我想检索客户和订单信息。他们有同样的oder id。

3 个答案:

答案 0 :(得分:1)

嗯,订单,

SELECT * 
FROM order
WHERE NOT order_date_time between '2012-10-14 14:00:00' and '2012-10-15 14:00:00'

加入客户是留给读者的练习。

答案 1 :(得分:1)

如果我理解你想要这个:

QUERY SQLFiddle example

SELECT
c.cus_name
,o.order_no
,o.ordr_status
,o.[order_ date_time]
FROM
customer c
  RIGHT JOIN order1 o
  ON c.cus_id = o.cus_id
WHERE o.[order_ date_time] >='20121014 14:00:00'
  AND o.[order_ date_time] <='20121015 14:00:00'
  AND (o.ordr_status = 'd' OR o.ordr_status = 'c')

结果:

| CUS_NAME | ORDER_NO | ORDR_STATUS |  ORDER_ DATE_TIME |
---------------------------------------------------------
|   philip |      123 |           d | 20121015 13:10:01 |
|   philip |      456 |           c | 20121014 14:20:00 |
|    david |      767 |           c | 20121014 15:10:00 |

答案 2 :(得分:0)

请在Oracle DB中使用以下查询:

properties(4) .eq. temp

上面的查询从表中获取记录,这些记录在10-apr-2019 18:06:14 hrs之后插入到表中。