【发布时间】:2019-03-23 13:03:11
【问题描述】:
我有一个格式为'5/23/2018 3:35:18 PM' 的日期和时间列(Login_time)。我想过滤八月月份和时间段为6.30 to 7.30 的行。我可以使用Login_time >= to_date('08/1/2018','MM/DD/YYYY') and Login_time >= to_date('08/31/2018','MM/DD/YYYY') 过滤八月月份,但现在我只想要早上 6.30 到早上 7.30 之间的行。
【问题讨论】:
-
您的月份逻辑不好 - 您在 8 月 31 日午夜后丢失了所有登录信息。您可以将其更改为
< 9/1,或者您可以使用 trunc 代替:trunc(login_date, 'Month') = date '2018-08-01' -
我希望你没有一个“格式”的
Login_time列(这将是一个字符串),而是存储为date或timestamp(可以显示to_char) 有多种不同的格式。 -
什么是列数据类型 - 日期、时间戳或(希望不是)varchar2?此外,您是否真的想包含正好 07:30:00 的值,还是只包含 07:29:59(.999...如果它是时间戳)?