我在我的数据库中添加日期,但问题是它们落后了一天。数据不是太敏感,所以只需添加一天即可。我不熟悉SQL Server,并且已经搜索过试图找到如何在UNIX时间戳中添加一天。
我只想在我的时间戳上添加一天。例如:1492560000
适用于昨天,需要今天使用。
任何帮助都会很棒,谢谢!
答案 0 :(得分: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.