【问题标题】:SQL: Offsetting timestamp in a query from GMT to PacificSQL:在从 GMT 到太平洋的查询中偏移时间戳
【发布时间】:2011-07-29 14:11:47
【问题描述】:

我希望有人可以帮助 SQL 新手(请注意,我很年轻,所以请温柔一点)。我正试图帮助对我公司的一些承包商员工进行审计,看看他们是否可能在他们报告的时间表上浪费时间。他们远程工作,所以我们看不到他们来来去去。我正在运行的是一个查询,以查看他们条目中的第一个和最后一个时间戳,然后按天汇总它们,这样我就可以了解他们在给定日期工作的小时数。所以我正在运行的查询看起来像这样:

SELECT MIN(entry_time) AS first_time_stamp, MAX(entry_time) AS last_time_stamp, employee
FROM some_database.some_table
WHERE employee = 'Kevin' AND entry_time > '20110301'
GROUP BY DATE_FORMAT(entry_time, '%Y%m%d'), employee
;

这会返回一些类似于以下示例的数据。

'2011-03-01 01:10:58', '2011-03-01 17:53:43', 'Kevin'
'2011-03-02 12:00:47', '2011-03-02 20:36:59', 'Kevin'
'2011-03-03 01:34:58', '2011-03-03 21:37:22', 'Kevin'

到目前为止一切顺利,只是您会注意到“Kevin”似乎工作了很长时间。问题是时间戳是格林威治标准时间,我们在美国西海岸。例如,显示的第一个时间戳实际上应该是 2 月 28 日,并且可能是他当天的最后一个条目。

过去一天,我一直在谷歌上搜索如何在这些时间戳被选中之前将它们偏移 -08:00,但总是出现空白或混淆(通常两者兼而有之)。那里的任何人都知道我如何能够抵消entry_time 以便它根据偏移时间返回值?

请注意,我真的不需要担心标准时间和夏令时,因为我只是在寻找相对的工作时间。

谢谢!

【问题讨论】:

    标签: sql offset gmt


    【解决方案1】:

    函数http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_convert-tz 转换时区之间的时间戳,应该做你需要的。 (我假设您使用的是 MySQL。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-25
      • 2019-01-03
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      • 2015-01-22
      相关资源
      最近更新 更多