首页 > 解决方案 > 在两个日期之间和两次之间

问题描述

我正在尝试从两个日期之间以及这些订单在下午 5 点到下午 6:20 之间获取订单。

SELECT CREATION_DATE_TIME_STAMP
FROM SHIPMENT_HEADER 
WHERE CREATION_DATE_TIME_STAMP  between '2019-08-01 17:00:00:000'  and '2019-10-31 18:20:000'  AND
      ORDER_TYPE = 'Catalog'

标签: sqlsql-server

解决方案


您需要单独的日期和时间组件条件。众所周知,日期和时间函数是特定于数据库的,但类似这样:

SELECT CREATION_DATE_TIME_STAMP
FROM SHIPMENT_HEADER 
WHERE CREATION_DATE_TIME_STAMP >= '2019-08-01' AND
      CREATION_DATE_TIME_STAMP < '2019-11-01' AND
      CAST(CREATION_DATE_TIME_STAMP as TIME) >= '17:00:00' AND
      CAST(CREATION_DATE_TIME_STAMP as TIME) <= '18:20:00' AND
      ORDER_TYPE = 'Catalog';

这假设一个简单cast()的足以提取时间。


推荐阅读