0

我有以下数据表:

顾客:

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) 并​​且它们具有相同的值,我想检索客户和订单信息订单号。

4

3 回答 3

1

那么,对于订单,

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

加入客户留给读者作为练习。

于 2012-10-15T19:30:44.877 回答
1

如果我理解你想要这个:

查询SQLFiddle 示例

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 |
于 2012-10-15T21:05:27.340 回答
0

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

select * from table_name where to_char(date_field,'YYYYMMDD HH24MISS') > '20190410 180614'

上述查询从表中获取记录,这些记录是在 2019 年 4 月 10 日 18:06:14 小时后插入到表中的。

于 2019-04-10T13:28:36.273 回答