首页 > 代码库 > C#/JavaScript/SqlServer 对日期时间的操作整理汇总

C#/JavaScript/SqlServer 对日期时间的操作整理汇总

     前言:针对C#/JavaScript/SqlServer常用的对日期时间的操作函数抽时间做了一个整理,网络上有许多,但是许多都不全,这些都是时间日期常用的一些操作!

一、C# 常用日期时间操作

//获取日期+时间
DateTime.Now.ToString();            // 2008-9-4 20:02:10
DateTime.Now.ToLocalTime().ToString();        // 2008-9-4 20:12:12
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") 24小时制
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")  12小时制
//获取日期
DateTime.Now.ToLongDateString().ToString();    // 2008年9月4日
DateTime.Now.ToShortDateString().ToString();    // 2008-9-4
DateTime.Now.ToString("yyyy-MM-dd");        // 2008-09-04
DateTime.Now.Date.ToString();            // 2008-9-4 0:00:00
//获取时间
DateTime.Now.ToLongTimeString().ToString();   // 20:16:16
DateTime.Now.ToShortTimeString().ToString();   // 20:16
DateTime.Now.ToString("hh:mm:ss");        // 08:05:57
DateTime.Now.TimeOfDay.ToString();        // 20:33:50.7187500
//其他
//n为一个数,可以数整数,也可以事小数
DateTime.Now.AddYears(n).ToString();   //时间加n年
DateTime.Now.AddDays(n).ToString();   //加n天
DateTime.Now.AddHours(n).ToString();   //加n小时
DateTime.Now.AddMonths(n).ToString();   //加n个月
DateTime.Now.AddSeconds(n).ToString();   //加n秒
DateTime.Now.AddMinutes(n).ToString();   //加n分

DateTime lastMonth = DateTime.Now.AddMonths(-1);
string LastMonth_firstDay = lastMonth.AddDays(1 - lastMonth.Day).ToString("yyyy-MM-dd");//获取上个月的第一天
string LastMonth_lastDay = lastMonth.AddDays(1 - lastMonth.Day).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd"); //获取上个月的最后一天

DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d")));  //本周周一
DateTime endWeek = startWeek.AddDays(6);  //本周周日

 DateTime startMonth = dt.AddDays(1 - dt.Day);  //本月月初
DateTime endMonth = startMonth.AddMonths(1).AddDays(-1);  //本月月末
//DateTime endMonth = startMonth.AddDays((dt.AddMonths(1) - dt).Days - 1);  //本月月末

DateTime startQuarter = dt.AddMonths(0 - (dt.Month - 1) % 3).AddDays(1 - dt.Day);  //本季度初
DateTime endQuarter = startQuarter.AddMonths(3).AddDays(-1);  //本季度末

DateTime startYear = new DateTime(dt.Year, 1, 1);  //本年年初
DateTime endYear = new DateTime(dt.Year, 12, 31);  //本年年末

二、javascript 常用日期时间操作

   var myDate = new Date(); //获取当前日期
    myDate.getYear();       //获取当前年份(2位)  
    myDate.getFullYear();   //获取完整的年份(4位,1970)  
    myDate.getMonth();      //获取当前月份(0-11,0代表1月)  
    myDate.getDate();       //获取当前日(1-31)  
    myDate.getDay();        //获取当前星期X(0-6,0代表星期天)  
    myDate.getTime();       //获取当前时间(从1970.1.1开始的毫秒数)  
    myDate.getHours();      //获取当前小时数(0-23)  
    myDate.getMinutes();    //获取当前分钟数(0-59)  
    myDate.getSeconds();    //获取当前秒数(0-59)  
    myDate.getMilliseconds();   //获取当前毫秒数(0-999)  
    myDate.toLocaleDateString();    //获取当前日期  
    var mytime=myDate.toLocaleTimeString();    //获取当前时间  
    myDate.toLocaleString( );       //获取日期与时间

三、SqlServer 日期时间操作

1、获取当前时间

select getdate()

2、截取需要的值

select datepart(year,getdate())

select datepart(month,getdate())

select datepart(day,getdate())

select datepart(hour,getdate())

select datepart(minute,getdate())

select datepart(second,getdate())

select datepart(week,getdate())

3、在日期中添加或减去指定的时间间隔

select dateadd(year,3,getdate()) --获取当前时间,往后推迟三年

select dateadd(month,3,getdate()) --获取当前时间,往后推迟三个月

select dateadd(day,3,getdate()) --获取当前时间,往后推迟三天

select dateadd(hour,3,getdate()) --获取当前时间,往后推迟三小时

select dateadd(minute,3,getdate()) --获取当前时间,往后推迟三分钟

select dateadd(second,3,getdate()) --获取当前时间,往后推迟三秒钟

4、返回两个日期之间的时间

select datediff(year,‘2001-08-19‘,getdate()) --2001-08-19和当前时间之间差多少年

select datediff(month,‘2001-08-19‘,getdate()) --2001-08-19和当前时间之间差多少月

select datediff(day,‘2001-08-19‘,getdate()) --2001-08-19和当前时间之间差多少天

5、用不同的格式显示日期/时间

select convert(char,getdate(),8)  --显示当前时-分-秒

select convert(char,getdate(),10) --显示当前月-日-年,显示形式“08-19-11”

select convert(char,getdate(),11) --显示当前年-月-日,显示形式“11/08/19”

select convert(char,getdate(),14) --显示当前时-分-秒-毫秒,显示形式“14:54:57:090”

6、其他

SELECT CONVERT(datetime,CONVERT(char(8),GETDATE(),120)+‘1‘)--这月的第一天

select dateadd(d,-day(getdate()),dateadd(m,1,getdate()))--这月的最后一天   

SELECT DATEADD(mm,DATEDIFF(mm,0,dateadd(month,-1,getdate())),0)--上月第一天  

select dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))--上月最后一天
 
select DATEADD(SS,-1,dateadd(day,1,CONVERT(varchar(15) , getdate(), 102 )))--获取当天的最后一刻