sql 计算在线时间总长

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 计算在线时间总长相关的知识,希望对你有一定的参考价值。

tbllog表:Log_ID,Action_ID,Actiontime,User_ID
用来放ID、用户登陆/退出说明、用户登陆/退出时间、用户ID,现在想把登陆和退出时间放在同一条记录中(就是同一行),这种SQL该怎么写啊~
Ps:登陆和退出的Log_ID不一样,退出的Log_ID大于登陆的Log_ID,唯一能确定的是退出Log_ID的前一个登陆Log_ID与之对应。

参考技术A 使用自联接就可以了

不过不太清楚你的表中,登录和退出用什么来一一对应。
写个语句你参考一下吧。最后的“and a.类型='登录' and b.类型='退出'”
这部分要根据你表的具体字段来填写。并且每一条登录和退出如果存在对应关系的话,一定要在条件里加上。

select a.user_id,a.actiontime,b.actiontime
from tbllog a,tbllog b
where a.user_id=b.user_id and a.类型='登录' and b.类型='退出'
参考技术B 将Actiontime字段改成字串格式
用户登陆
sql="update tbllog set actiontime='"&Cstr(Now())&"' where log_ID="&"id"
用户退出
sql="select * from tbllog where log_ID="&"id"
rs.open sql,conn,1,3
rs("actiontime")=rs("actiontime")&" | "&Cstr(Now())
rs.update
rs.close
set rs=nothing

连接到在线 SQL 数据库

【中文标题】连接到在线 SQL 数据库【英文标题】:Connecting to an online SQL database 【发布时间】:2015-02-18 09:35:40 【问题描述】:

它可能与谁有关,

我的一个朋友有一个服务器,里面有一个他为我创建的数据库。

我希望用我的 Java 应用程序连接到这个数据库, 现在我得到了这个代码:

    /**
     * Open database connection
     */
    public void openConnection() 
        try 
            //  Database information
            String url = "jdbc:mysql://url-to-online-database.com:3306/";
            String dbName = "dbName";

            //  jdbc driver
            String driver = "com.mysql.jdbc.Driver";
            //  username of database user
            String userName = "testUsername";
            //  Password of database user
            String password = "testPassword";

            // The newInstance() call is a work around for some
            // broken Java implementations
            Class.forName(driver).newInstance();
            conn = DriverManager.getConnection(url + dbName, userName, password);

            //  Adding multiple exception catches
         catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) 
            JOptionPane.showMessageDialog(null, e);

        
    

此时我不知道我做错了什么,除了我不知道从哪里获取用于连接到该数据库的 url。

在我的应用程序中尝试登录时,出现以下错误:

这和远程mysql有关吗?我需要在 cpanel 中“添加访问主机”吗? 可能是重复使用我的驱动程序的 JAR?

【问题讨论】:

“除了我不知道用什么 url 来连接这个数据库”这是否意味着你知道这个 URL 并且不知道为什么你无法连接? > 我不知道网址,也不知道从哪里获取:P 大部分连接设置都在您朋友的服务器上,而不是在您的一端。确保防火墙规则允许连接,确保允许来自 db 端的连接,确保为您设置了用户,获取服务器所在的 IP 地址/端口号和/或域。在你能够连接之前,你的朋友有很多事情要做 有一个用户集,连接到我正在使用的数据库。 【参考方案1】:

如果你的数据库在其他位置,你的程序找不到这个url,因为你尝试连接远程数据库,你需要创建adHoc网络并共享你的数据库。

【讨论】:

【参考方案2】:

您应该尝试使用 maven 项目。如果你使用 maven,你需要像这样为 mysql-connector 添加一个依赖:

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>    

【讨论】:

【参考方案3】:

在您的问题中,没有为 java mysql 连接找到这样的驱动程序,因此请在您的项目库中添加 mysql-java-connector 并运行。

Download MySQL Java Connector

【讨论】:

使用它从我的应用程序登录时会导致错误:通信链路故障,最后一个成功发送到服务器的数据包是 0 毫秒前。驱动没有收到来自服务器的任何数据包 确保您的 mysql 服务器正在运行,同时确保您的服务器具有允许访问数据库的最大连接限制。还有一件事是您尝试全局还是本地访问 mysql 服务器? 这是我需要连接的 url。我用什么?它是“主域”网址吗? 我的意思是你的mysql服务器和你的java应用程序在同一个地方? 不,它在不同的位置

以上是关于sql 计算在线时间总长的主要内容,如果未能解决你的问题,请参考以下文章

计算在线会议的总时间

PHP 和 SQL 社交网络 - 用户在线

SQL 社交 - 在线用户

DB2 的在线 SQL 参考

连接到在线 SQL 数据库

用SQL语句判断系统当前时间在一个时间段内。加急,在线等