显示月份和年份
我有一个查询导致时间戳值以及某些其他计算。显示月份和年份
结果看起来像下面 -
City DateTime Value
London 2009-01-01 00:00:00.000000 22
New York 2010-01-01 00:00:00.000000 33
... ... ...
有什么办法获得具有月份和年份的日期时间列 - 像Jan-2009
和Jan-2010
,而不是整个时间戳。我不想使用case语句。
t=# select now(),to_char(now(),'Mon-YYYY');
now | to_char
-------------------------------+----------
2017-09-20 07:49:34.360483+00 | Sep-2017
(1 row)
https://www.postgresql.org/docs/current/static/functions-formatting.html
TO_CHAR(时间戳,文本)
我有downvote因为我用' timestamptz'而不是'timezone'在我的例子中,还是因为这个问题不应该被回答?或者因为它不清楚?当downvote请评论 - 我会很乐意详细说明它。减2分并不足以阻止做错误的行为 - 解释发生了什么问题 –
PostgreSQL的数据类型格式化功能to_char
可以解决这个问题。它需要2个参数,一个时间戳和一个模板模式字符串,并根据提供的模式返回一个日期字符串。有关完整模式列表,请参阅Postgresql documentation。
您可以尝试类似如下:
select city, to_char(your_date_field, 'Mon-YYYY'), value from your_table
谢谢你的代码片段,它可能会提供一些有限的即时帮助。通过展示*为什么*这是一个很好的解决方案,并且使它对未来的读者更有用,一个正确的解释[将大大提高](// meta.stackexchange.com/q/114762)其长期价值其他类似的问题。请[编辑]你的答案以添加一些解释,包括你所做的假设。 –
https://www.postgresql.org/docs/current/static/functions-formatting.html –