Sql server 2008 如何查找(SYSDATETIME()-1)<;在下面的查询中登录\u时间?
我想计算我尝试以下查询的当前登录用户:Sql server 2008 如何查找(SYSDATETIME()-1)<;在下面的查询中登录\u时间?,sql-server-2008,tsql,Sql Server 2008,Tsql,我想计算我尝试以下查询的当前登录用户: select COUNT(*)from [dbname] where login_time < SYSDATETIME() and logout_time is NULL 从[dbname]中选择COUNT(*) 其中登录时间
select COUNT(*)from [dbname]
where login_time < SYSDATETIME()
and logout_time is NULL
从[dbname]中选择COUNT(*)
其中登录时间
但我只想获取当前日期的记录,因此我尝试:
select COUNT(*)from [dbname]
where ( SYSDATETIME()-1) < login_time < SYSDATETIME()
and logout_time is NULL
从[dbname]中选择COUNT(*)
其中(SYSDATETIME()-1)
这似乎是不正确的。那么,如何正确地形成查询呢?我不能使用GETDATE()或Datetime.now(),因为它会给出与数据库中的日期时间不匹配的秒数
SELECT COUNT(*) from [dbname]
WHERE login_time < SYSDATETIME()
AND CONVERT(date, login_time) = CONVERT(date, getdate())
AND logout_time is NULL
其中登录时间CONVERT(date,getdate())
至于查询的后面部分。。我有一种机制,可以在用户注销时清除注销时间并将其设置为NULL,并将其保存在lastlogin列中。为什么不搜索
logout\u time
为NULL?如果该领域不可靠,那么您可能需要重新考虑您的方法。如果这是一个基于web的应用程序,那么获取注销时间可能会很棘手。你希望sysdatetime-1做什么?我不认为登录时间