日期:2014-05-18  浏览次数:20998 次

时间的计算
我在数据库中有三个字段,登陆时间,退出时间,在线时长, 我使用数据列规范将 退出时间-登陆时间=在线时长
但得出的结果确是1900-01-01 00:00:03.860 有没有办法只要 00:00:03.860 不要年月日

------解决方案--------------------
取出来1900-01-01 00:00:03.860 按空格分割,或者是转成datetime。然后datetime对象.小时+ datetime对象.分 + datetime对象.秒……
------解决方案--------------------
只要 00:00:03.860 是不现实的,如果退出时间和登录时间相差超过24小时,就会出错了


请确认退出时间,登录时间,在线时长这三个字段分别是什么类型的,在线时长用的是小时,还是分钟等?
------解决方案--------------------
DateTime dt1 = 登录时间;
DateTime dt2 = 退出时间;
TimeSpan ts = dt2.Subtract(dt1);
string 在线时长 = ts.Days.ToString()+"天" + ts.Hours.ToString()+"小时" + ts.Minutes.ToString()+"分钟";
------解决方案--------------------
可以不要天数了,只要时、分
------解决方案--------------------
CONVERT(Varchar(50), GETDATE(), 108) ,把getdate()改成你要转换的时间。
------解决方案--------------------
C# code

        static void Main(string[] args)
        {
            string dateString = "1900-01-01 00:00:03.860";

            DateTime date = DateTime.Parse(dateString);

            string month = date.ToString("HHmmssfff");

            Console.WriteLine(month);

            Console.ReadLine();
        }

------解决方案--------------------
其实你需要的是一个TimeSpan 
他表示一段时间间隔。输出TimeSpan就可以输出超过一段时间的差值了。
------解决方案--------------------
http://blog.csdn.net/xianfajushi/article/details/4570876
------解决方案--------------------
http://blog.csdn.net/xianfajushi/article/details/4570876
------解决方案--------------------
TimeSpan span;
String st = span.ToString("hh:mm:ss");

这样应该可以,yyyy,MM,DD分别是年,月,日的格式显示,hh,mm,ss是时分秒的显示
------解决方案--------------------
探讨
TimeSpan span;
String st = span.ToString("hh:mm:ss");

这样应该可以,yyyy,MM,DD分别是年,月,日的格式显示,hh,mm,ss是时分秒的显示

------解决方案--------------------
C# code
DateTime.Now.ToString("HH:mm:ss.fff");

------解决方案--------------------
datatime.now.tosting("hh:mm:ss:fff");