首页 > 代码库 > 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 )))--获取当天的最后一刻