2011-04-05 91 views
0

我希望有人可以幫助一個SQL新手(注意,我很綠,所以請溫柔)。我試圖幫助對我公司的一些承包商員工進行審計,看看他們是否可以在他們報告的時間表上擠奶。他們遠程工作,所以我們沒有看到他們來&去。我正在運行的是一個查詢,查看他們條目中的第一個和最後一個時間戳,然後將它們整天滾動,以便我可以瞭解他們在給定日期中花費的工作小時數。所以我在運行查詢看起來是這樣的: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' 

到目前爲止好,但你會發現,「凱文」似乎是工作的一些很長的日子。問題是,時間戳是在格林威治標準時間,我們在美國的西海岸。例如,第一次顯示的時間戳實際上是在2月28日,可能是他當天的最後一次錄入。

我在過去的一天中搜索了一些方法,在選擇之前用-08:00來抵消這些時間戳,但一直保持空白或混亂(通常是兩者)。那裏的任何人都知道我怎麼能夠抵消entry_time,以便它基於偏移時間返回值?

請注意,我並不需要擔心標準與夏令時間,因爲我只是在尋找相對工作時間。

謝謝!

回答

相關問題