2017-04-19 82 views
0

我正在給我的數據庫添加日期,但問題是,他們是一天後面。數據不是太敏感,所以只需添加一天即可使用。我對SQL Server並不十分熟悉,並且已經搜索了試圖找到如何將一天添加到UNIX時間戳的方法。如何將一天添加到SQL Server中的UNIX時間戳?

我只是想添加一天到我的時間戳。例如:1492560000是針對昨天的,需要針對今天。

任何幫助將是偉大的,謝謝!

+5

那麼它的秒數如此加60 * 60 * 24? –

+0

同意@AlexK。 (S,1492560000,'1970-01-01'),dateadd(S,1492560000 +(60 * 60 * 24),'1970-01-01')' – scsimon

回答

1

如評論所述,您可以添加60 * 60 * 24添加一天。如果您希望能夠添加其他日期部分而不添加任何內容,則可以將unix時間戳轉換爲SQL日期部分,使用dateadd,然後將其轉換回來。

declare @date datetime = getutcdate() 
declare @unixstartdate datetime = '1970-01-01' 
declare @unixdate int = datediff(second, @unixstartdate, @date) 

--Add datepart to unix 
select 
    datediff(second, @unixstartdate, dateadd(/*date part you are adding*/day, /*number of dateparts to add*/1, dateadd(second, @unixdate, @unixstartdate))) 

--Here's how we got there 
select 
    @unixdate AS [current_unix_date] 
    ,dateadd(second, @unixdate, @unixstartdate) AS [sql_datetime] --Convert the unix timestamp to a sql datetime. 
    ,dateadd(day, 1, dateadd(second, @unixdate, @unixstartdate)) AS [updated_sql_datetime] --Add your dayparts. Here we add 1 day. 
    ,datediff(second, @unixstartdate, dateadd(day, 1, dateadd(second, @unixdate, @unixstartdate))) --Convert the updated sql datetime back to unix.