如何在postgresql中从时间戳获取小时、月
带时区的时间戳为-如何在postgresql中从时间戳获取小时、月,postgresql,timestamp,Postgresql,Timestamp,带时区的时间戳为-2020-05-31T10:05:07Z 尽管参考了官方文件,但这是行不通的。我需要提取2020年5月或单独的月份和年份与2020年5月进行比较 SELECT date_trunc('hour', TIMESTAMP '2020-05-31T10:05:07Z') SELECT date_part('day', TIMESTAMP '2020-05-31T10:05:07Z'); 您需要来设置日期或时间戳的格式Mon提供一个月名称的前三个字母: SELECT t
2020-05-31T10:05:07Z
尽管参考了官方文件,但这是行不通的。我需要提取2020年5月或单独的月份和年份与2020年5月进行比较
SELECT date_trunc('hour', TIMESTAMP '2020-05-31T10:05:07Z')
SELECT date_part('day', TIMESTAMP '2020-05-31T10:05:07Z');
您需要来设置日期或时间戳的格式Mon
提供一个月名称的前三个字母:
SELECT
to_char(
TIMESTAMP '2020-05-31T10:05:07Z',
'Mon YYYY'
)
返回整个月份名称,您可以使用month
而不是Mon
。但是,由于某些原因,Month
值的长度固定为可用的最长月份名称。这意味着May
返回时带有右填充空格。为了避免这种情况,您需要添加修饰符FM
:
SELECT
to_char(
TIMESTAMP '2020-05-31T10:05:07Z',
'FMMonth YYYY'
)
如果要检查时间戳值是否为“may 2020”,可以使用不同的选项
to_char(the_value, 'yyyy-mm') = '2020-05'
或
或
extract()
和date\u part()
是一样的-但我更喜欢标准兼容的extract()
版本。好吧,date\u TRUNC
不提取任何内容-请定义“不工作”。您对第一份声明和第二份声明的期望是什么?日期部分(“日期”)为31。你在期待什么?@S-Man,我编辑了它。你想对小时部分做什么?
extract(month from the_value) = 5
and extract(year from the_value) = 2020
(extract(month from the_value), extract(year from the_value)) = (5, 2020)