Postgresql 新手 - 寻找洞察力

Postgresql Newbie - Looking for insight

我正在介绍 sql class(使用 postgresql)并且正在努力进行下一步的简单查询。我有一个带有两个日期时间列(start_time 和 end_time)的单个 table,我想将其提取为两个仅限日期的列。我想出了如何使用以下方法从日期时间中提取日期:

Select start_time,
CAST(start_time as date) as Start_Date
from [table];

Select end_time,
CAST(end_time as date) as End_Date
from [table];

问题:我想不出将这两个查询合并为一个步骤的下一步。我尝试使用 WHERE 但我仍然做错了。 第一个错误示例

SELECT start_time, end_time
   From baywheels_2017
    WHERE
CAST(start_time AS DATE) AS Start_Date
    AND (CAST(end_time AS DATE) AS End_Date);

非常感谢任何帮助。感谢您抽空查看。

您不需要 select 基础字段以便稍后进行转换; “select”子句中的每个字段都是相对独立的。 table 创建者:

CREATE TABLE test (
  id SERIAL PRIMARY KEY,
  start_time TIMESTAMP WITH TIME ZONE NOT NULL,
  end_time TIMESTAMP WITH TIME ZONE NOT NULL
);
 
INSERT INTO test(start_time, end_time) 
  VALUES ('2022-10-31T12:30:00Z', '2022-12-31T23:59:59Z');

你可以 运行 select:

SELECT 
  cast(start_time as date) as start_date, 
  cast(end_time as date) as end_date 
FROM test;

(您可以在 DB-Fiddle 这样的网站上尝试一下。)