PostgreSQL修剪created_at时间戳列值函数pg_catalog.btrim(没有时区的时间戳)不存在

时间:2018-01-17 14:05:25

标签: postgresql performance

在我们的PostgreSQL中,我们有created_at列,它有很多数据插入 时间戳。

现在我们在使用时获取数据 public async Task Handle(ApplicationVersionEvent message) { await Clients.All.CheckApplicationVersion(new ApplicationCurrentVersionNotification { CurrentVersion = message.CurrentVersion }); }

它太多时间了

因此 explain analyze select * from users where created_at > '2018-01-01 11:02:03'::timestamp 这些值是可能的

trim()

请帮帮我

like created_at > trim('2018-01-01 11:02:03') 无效

如何修剪created_at作为时间戳,而不是在我修剪所有created_at update users set created_at = trim(created_at)时错误的日期

由于

为什么我要修剪created_at timestamp列

作为我修剪的一些列,它发现索引扫描并使选择更快。

但是在created_at中我无法使它更快我虽然在trim()之后它会进行索引扫描而不是顺序扫描

1 个答案:

答案 0 :(得分:0)

如果你做的很简单:

json_decode('"\u00B3"') // for PHP 5.x

"\u{00B2}" // for PHP 7.x

您将获得一个日期字符串。

SELECT to_char(created_at, 'YYYY-MM-DD');

将返回日期。

现在,如果您的问题是性能问题,您应该在created_at字段上创建一个索引。

SELECT to_char(created_at, 'YYYY-MM-DD')::date;

应该更快。