Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想在SQLServer2005中将datetime转换为unix时间戳,并更新表值_Sql_Sql Server 2005 - Fatal编程技术网

我想在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时间戳做的是最好的,对吗?这样,我就可以更轻松地将在线时间添加到特定用户的总数中,对吗?