如何 return 带有时间戳的数据以及如何过滤它?

How can I return data with a timestamp and how to filter it?

我是 SQL 的新手,我很吃力。我需要 运行 从下面提到的日期进行查询,并将带时间戳的数据拆分为轮班时间 6-13:59、14-21:59 和 22 - 05:59。我需要查看在这几个小时内发送了多少货件。我想到了类似的方法,但它似乎不起作用。

当我输入没有时间戳的日期时,数据会返回,但我只想返回那些在 6 - 14 之间发送的行。SDG table 包含时间戳,所以我不明白为什么它不起作用。

select s1.date, k.su, count(distinct s1.nr) AMO_SHIP2021
from sdg s1 , client k
where s1.clientnr in ('1')
and s1.date between '01.12.2021 06:00:00' and '14.12.2021 13:59:59'
and s1.function in ('20')
and k.nr = s1.clientnr
group by s1.date, k.su, s1.function

你应该 post 那里的 table 结构。通常,如果您的列是 Date 类型,则需要使用 BETWEEN 和日期而不是字符串

来操作日期
s1.date BETWEEN to_date('01.12.2021 06:00:00', 'DD.MM.YYYY HH24:MI:SS') AND
to_date('14.12.2021 13:59:59', 'DD.MM.YYYY HH24:MI:SS')

在您的搜索中参考格式化模型。

to_date('string date', 'format model')