我有一个Postgres数据库,它有一个timestamp with time zone
列,每个记录的本地时区都不同。我想返回所有记录的“本地”时区,我已经发现了如何使用at time zone
关键字。
下面的查询是我用来获取此信息的原始SQL,我想知道npgsql或NodaTime是否有扩展来生成查询的at time zone
部分。
select
e.type,
e.description,
-- note: `z.name` resolves to zone names like 'Australia/Sydney'
e.date_time at time zone z.name as local_time
from events e
join sources s on e.source_id = s.id
join zones z on s.zone_id = z.id
1条答案
按热度按时间lp0sw83n1#
假设你正在询问Entity Framework Core,PostgreSQL NodaTime插件允许你编写如下查询:
换句话说,您可以在EF LINQ查询中调用NodaTime方法(如InZoneLeniently),提供程序会将其转换为
AT TIME ZONE
SQL表达式。以下是NodaTime插件支持的完整翻译列表。See this article了解更多关于在PostgreSQL中使用本地时间戳和时区的信息。