sql - 在两个日期之间和两次之间
问题描述
我正在尝试从两个日期之间以及这些订单在下午 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'
解决方案
您需要单独的日期和时间组件条件。众所周知,日期和时间函数是特定于数据库的,但类似这样:
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()
的足以提取时间。
推荐阅读
- mysql - 使用逐行操作设置 SQL 列默认值
- azure - Azure AKS:无法访问专用集群,出现错误 dial tcp:lookup .....privatelink.westeurope.azmk8s.io on 208.67.222.222:53: no such host
- javascript - Javascript 更改指向 fancybox iframe 弹出窗口的链接仅限于 31 个链接
- javascript - Javascript / Vue 一个接一个地执行一个函数(同步)
- python - 从单个标记中提取名词块
- javascript - 组件在 api 能够获取之前给出错误
- ansible - Ansible 任务错误:{“msg”:“目标目录 /opt/connectdirect/ndm/cfg/CD.STK 不存在”}
- javascript - 检查angularjs中动态字段的模糊事件的重复字段值
- c# - 将pdf JBIG2Decode过滤器转换为图像c#
- r - 如何使用 editable = TRUE 参数从 DT::renderDT 更改 colnames?