2014-07-25 72 views
0

我有一個顯示時間戳的SQL查詢。我如何獲得過去24小時的記錄。我們使用MS SQL Server 2012的,但下面的查詢獲取過去24小時內的記錄

select DATEADD(SECOND, TIME_STAMP /1000 + 8*60*60, '19700101') 
as Date_and_Time from [dbo].[V_AGENT_SYSTEM_LOG] 
where EVENT_SOURCE = 'sylink'and EVENT_DESC like '%Downloaded%' 
and TIME_STAMP >= SYSDATE() - 1 

返回錯誤

Msg 195, Level 15, State 10, Line 4 
'SYSDATE' is not a recognized built-in function name. 

謝謝

+3

你需要getdate()而不是sysdate和datediff減去1天 – Jayvee

+0

說現在的日期和時間是7點25分在下午5點。你是否希望所有記錄在下午5點回到7/24,或者所有記錄在午夜回到7/25? –

+0

@BrianDeMilia我想所有的記錄回到7/24 5pm – Glowie

回答

1

系統日期是Oracle - 使用GETDATE()

select DATEADD(SECOND, TIME_STAMP /1000 + 8*60*60, '19700101') 
as Date_and_Time from [dbo].[V_AGENT_SYSTEM_LOG] 
where EVENT_SOURCE = 'sylink'and EVENT_DESC like '%Downloaded%' 
and TIME_STAMP >= GETDATE() - 1 
+0

我得到錯誤「算術溢出錯誤將表達式轉換爲數據類型日期時間。」 – Glowie

+0

您應該使用DATEADD甚至幾天,而不是依賴datetime列的默認數學過程。 DATEADD(DAY,-1,GETDATE()) –

+0

該錯誤很可能在您的epoch int列中。如果可能,我會考慮將其更改爲日期時間列。 –

相關問題