现在的位置: 首页 > 综合 > 正文

c#和sql算出入职人员入职日期的时间差包括年月日

2012年04月27日 ⁄ 综合 ⁄ 共 974字 ⁄ 字号 评论关闭

sql

分别得到时间差(年月日周小时分钟秒.....)

select datediff(year,'2010-5-5',getdate())
select datediff(month,'2010-5-5',getdate())
select datediff(day,'2010-5-5',getdate())
select datediff(week,'2010-5-5',getdate())
select datediff(hour,'2010-5-5',getdate())
select datediff(minute,'2010-5-5',getdate())
select datediff(second,'2010-5-5',getdate())

输出:

2
24
737
105
17689
1061363
63681796

 

c#中

     DateTime dt = DateTime.Now;
        DateTime dt2 = Convert.ToDateTime("2010-4-9");
        Response.Write("入职日期:"+dt2.ToString());
        Response.Write("<br>");
        Response.Write("当前日期:"+dt.ToString());
        Response.Write("<br>");
        Response.Write("相差年:"+(dt.Year - dt2.Year).ToString());
        Response.Write("<br>");
        Response.Write("相差月:" + ((dt.Year - dt2.Year) * 12 + dt.Month - dt2.Month).ToString());
        Response.Write("<br>");
        Response.Write("相差日:" + dt.Subtract(dt2).Duration().Days.ToString());
        Response.Write("<br>");

输出:

入职日期:2010/4/9 0:00:00
当前日期:2012/5/11 1:22:18
相差年:2
相差月:25
相差日:763

 

 

计算时间差的更好的办法是:使用sql中现有的时间函数

要不就这样  c#中传入参数到sql中的存储过程中

要不使用vb中的datediff  引用system.VB命名空间(由于没有装VB)   没有实践!

抱歉!评论已关闭.