Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在postgresql中从时间戳获取小时、月_Postgresql_Timestamp - Fatal编程技术网

如何在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)