我想在SQLServer2005中将datetime转换为unix时间戳,并更新表值
就语法而言,这实际上是一个正确的查询吗?我首先要知道它是否有效。 我希望你明白我想做什么 所以请让我知道我想在SQLServer2005中将datetime转换为unix时间戳,并更新表值,sql,sql-server-2005,Sql,Sql Server 2005,就语法而言,这实际上是一个正确的查询吗?我首先要知道它是否有效。 我希望你明白我想做什么 所以请让我知道 update userdata set totaltime = totaltime + (DATEDIFF(s, '19700101', GETDATE()) - logintime) where user= ..... totaltime和longtime列都在userdata表中 totaltime列也是这样插入的: update userdata set totaltime =
update userdata
set totaltime = totaltime + (DATEDIFF(s, '19700101', GETDATE()) - logintime)
where user= .....
totaltime
和longtime
列都在userdata
表中
totaltime
列也是这样插入的:
update userdata
set totaltime = DATEDIFF(s, '19700101', GETDATE())
基本上,我这样做是为了将SQL Server中的datetime转换为unix时间戳,以便于计算,那么这一切都正确吗
快速解释我想做什么:
我想为大多数在线用户添加排名(比如1天在线、2天在线等等),因此,在登录到系统时-它将使用用户登录时和断开连接时的当前时间更新列
LoginTime
-它应该比较断开连接时的当前时间和LoginTime
,并使用额外的在线时间更新TotalTime
。所以,我相信我想用unix时间戳做的是最好的,对吗?这样,我就可以更轻松地将在线时间添加到特定用户的总数中,对吗 “便于计算”-在SQL server端?这真的有必要吗?日期处理功能易于使用且相当全面。您添加的字段是longtime
(在注释中写入)或logintime
(在代码块中写入)?不管怎样,为什么要这样做?使用本机sql时间函数进行所有计算:您得到的结果和数据是人类可读的。我想为大多数在线用户添加排名(如在线1天、在线2天等),因此,在登录到系统时-它将使用用户登录时和断开连接时的当前时间更新列LoginTime
-它应该比较断开连接时的当前时间和LoginTime
,并使用额外的在线时间更新TotalTime
。所以,我相信我想用unix时间戳做的是最好的,对吗?这样,我就可以更轻松地将在线时间添加到特定用户的总数中,对吗?