<blockquote>
<p>it appears to work out of the box. This is because the clients you list all assume that the data stored in the 'timestamp' columns is UTC, when it is actually 'local time'. Since the assumption is symmetric (i.e. the same mistake on writing and reading), you don't see the problem</p>
</blockquote>
<p>Yes, that's pretty much in line with <a href="http://phili.pe/posts/timestamps-and-time-zones-in-postgresql/" rel="nofollow">http://phili.pe/posts/timestamps-and-time-zones-in-postgresql/</a></p>
<p><em>The answer is semantics. Whenever you encounter a timestamptz, you know it denotes absolute time. It was stored in UTC. However, when you come across timestamp, you can’t possibly know in what time zone the timestamp is just by looking at it. It is merely a wall time. Maybe it’s UTC, or maybe the developer stored it in local time. Without additional context, you can’t be sure.</em></p>
<p>What we rely on here is the additional context.</p>
<blockquote>
<p>Basically we should try to come up with a solution that allows cgimap to work with both timestamp and timestampz columns interchangeably.</p>
</blockquote>
<p>Right, maybe we could add something in the code to add an <code>SET timezone TO 'UTC';</code> if required, e.g. based on some table metadata (timezone without vs. with timezone). Ideally, this would avoid changing all SQL statements where this is an issue.</p>
<p>I'm not exactly sure if this is what <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1190866" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pnorman">@pnorman</a> proposed earlier, it sounded more like he wanted to control this from the outside via some environment parameter, which I don't find an appealing solution.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/issues/375#issuecomment-441669899">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABWnLTbUFvJGlg8pqzu22Xoh2d2sYD-2ks5uzAK3gaJpZM4A1Xpw">mute the thread</a>.<img src="https://github.com/notifications/beacon/ABWnLeMEQhmWYQUD0QuljFLhJhOyPy-8ks5uzAK3gaJpZM4A1Xpw.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/openstreetmap/openstreetmap-website","title":"openstreetmap/openstreetmap-website","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/openstreetmap/openstreetmap-website"}},"updates":{"snippets":[{"icon":"PERSON","message":"@mmd-osm in #375: \u003e  it appears to work out of the box. This is because the clients you list all assume that the data stored in the 'timestamp' columns is UTC, when it is actually 'local time'. Since the assumption is symmetric (i.e. the same mistake on writing and reading), you don't see the problem\r\n\r\n\r\n\r\nYes, that's pretty much in line with http://phili.pe/posts/timestamps-and-time-zones-in-postgresql/\r\n\r\n_The answer is semantics. Whenever you encounter a timestamptz, you know it denotes absolute time. It was stored in UTC. However, when you come across timestamp, you can’t possibly know in what time zone the timestamp is just by looking at it. It is merely a wall time. Maybe it’s UTC, or maybe the developer stored it in local time. Without additional context, you can’t be sure._\r\n\r\nWhat we rely on here is the additional context.\r\n\r\n\u003e Basically we should try to come up with a solution that allows cgimap to work with both timestamp and timestampz columns interchangeably.\r\n\r\nRight, maybe we could add something in the code to add an `SET timezone TO 'UTC';` if required, e.g. based on some table metadata (timezone without vs. with timezone). Ideally, this would avoid changing all SQL statements where this is an issue.\r\n\r\nI'm not exactly sure if this is what @pnorman proposed earlier, it sounded more like he wanted to control this from the outside via some environment parameter, which I don't find an appealing solution.\r\n\r\n"}],"action":{"name":"View Issue","url":"https://github.com/openstreetmap/openstreetmap-website/issues/375#issuecomment-441669899"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/openstreetmap-website/issues/375#issuecomment-441669899",
"url": "https://github.com/openstreetmap/openstreetmap-website/issues/375#issuecomment-441669899",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
},
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"hideOriginalBody": "false",
"originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB",
"title": "Re: [openstreetmap/openstreetmap-website] Switch to TIMESTAMP WITH TIME ZONE for current_* tables (#375)",
"sections": [
{
"text": "",
"activityTitle": "**mmd**",
"activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png",
"activitySubtitle": "@mmd-osm",
"facts": [

]
}
],
"potentialAction": [
{
"name": "Add a comment",
"@type": "ActionCard",
"inputs": [
{
"isMultiLine": true,
"@type": "TextInput",
"id": "IssueComment",
"isRequired": false
}
],
"actions": [
{
"name": "Comment",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"openstreetmap/openstreetmap-website\",\n\"issueId\": 375,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}"
}
]
},
{
"name": "Close issue",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueClose\",\n\"repositoryFullName\": \"openstreetmap/openstreetmap-website\",\n\"issueId\": 375\n}"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/openstreetmap/openstreetmap-website/issues/375#issuecomment-441669899"
}
],
"@type": "OpenUri",
"name": "View on GitHub"
},
{
"name": "Unsubscribe",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 13990512\n}"
}
],
"themeColor": "26292E"
}
]</script>