Open liujuanjuan1984 opened 5 years ago
to_char(created_at,'yyyy-mm-dd hh24:mi:ss')
搜了很多文章,还是没能解决。一般是对数据库配置修改实现时区调整。 我想要实现:不对数据源做修改,仅通过sql的select 语句,把 有时区属性的timestamp 改成没有时区属性的timestamp ?——或通过其它方式转换,使得date_format()之类的函数可使用。
经工程师提醒, https://www.postgresql.org/docs/9.6/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT 【浏览了下, 但还很深奥】
mysql 换成 postgres 搜到答案了。。
select created_at, date_part('month',created_at) as monthx, to_char(date_trunc('month',created_at),'yyyy-mm') as monthy, to_char(date_trunc('week',created_at),'yyyy-ww') as weeky from comments
limit 20
解决编程问题时,就好像解谜,并不太需要很多脑力,只是线索错乱,或者自己对某些线索选择性忽视,抽丝剥茧,找到线索很快就解决了。我把它当做可静心的游戏。
我想按月统计,但两种写法在grafana上都报错。我直接本地mysql执行没问题。date_trunk 参考了https://stackoverflow.com/questions/46713402/sql-function-trunctimestamp-without-time-zone-unknown-does-not-exist 也报错。
应该是 created_at 带着 timezone 信息,看看把它们统一转换成 UTC 或 某个时区,去掉 timezone 吧
‘2019-08-02T15:23:24.655274+08:00’
att